类型转换函数
类型转换函数
cash_words(money)
描述:类型转换函数,将money转换成text。
示例:
openGauss=# SELECT cash_words('1.23'); cash_words ----------------------------------- One dollar and twenty three cents (1 row)
cast(x as y)
描述:类型转换函数,将x转换成y指定的类型。
返回值类型:type_name
示例:
openGauss=# SELECT cast('22-oct-1997' as timestamp); timestamp --------------------- 1997-10-22 00:00:00 (1 row)
CAST( expr AS type_name [ DEFAULT return_value ON CONVERSION ERROR ][, fmt [, 'nlsparam' ] ])
描述:类型转换函数,将x转换成y指定的类型,并且支持DEFAULT设置默认值、fmt指定入参的输入格式以及nlsparam参数,目前nlsparam参数仅支持English和American。
返回值类型:type_name
示例:
openGauss=# SELECT cast('12,454.8-' as numeric, '99G999D9S'); numeric ---------- -12454.8 (1 row)
openGauss=# SELECT cast('111111.111'+'1111' as numeric, '99G999D9S'); numeric ------------ 112222.111 (1 row)
openGauss=# SELECT cast('1e5'+'1111' as numeric, '999999.99'); numeric --------- 101111 (1 row)
openGauss=# SELECT cast('此参数错误' as numeric default 321456231 on conversion error, '999,999,999,999.99'); numeric ----------- 321456231 (1 row)
openGauss=# SELECT cast('12-sep-2014' as timestamp , 'DD-Mon-YYYY'); timestamp --------------------- 2014-09-12 00:00:00 (1 row)
openGauss=# SELECT cast ('此为错误输入' as timestamp DEFAULT '11-01-11 14:10:10.123000' ON CONVERSION ERROR,'DD-MM-RR HH24:MI:SS.FF'); timestamp ------------------------- 2011-11-01 14:10:10.123 (1 row)
openGauss=# SELECT cast ('01-Jan-03 14:10:10.123000' as timestamp DEFAULT '11-Jan-11 14:10:10.123000' ON CONVERSION ERROR,'DD-Mon-RR HH24:MI:SS.FF','NLS_DATE_LANGUAGE = American'); timestamp ------------------------- 2003-01-01 14:10:10.123 (1 row)
hextoraw(raw)
描述:将一个十六进制构成的字符串转换为raw类型。
返回值类型:raw
示例:
openGauss=# SELECT hextoraw('7D'); hextoraw ---------- 7D (1 row)
numtoday(numeric)
描述:将数字类型的值转换为指定格式的时间戳。
返回值类型:timestamp
示例:
openGauss=# SELECT numtoday(2); numtoday ---------- 2 days (1 row)
pg_systimestamp()
描述:获取系统时间戳。
返回值类型:timestamp with time zone
示例:
openGauss=# SELECT pg_systimestamp(); pg_systimestamp ------------------------------- 2015-10-14 11:21:28.317367+08 (1 row)
rawtohex(string)
描述:将一个二进制构成的字符串转换为十六进制的字符串。
结果为输入字符的ACSII码,以十六进制表示。
返回值类型:varchar
示例:
openGauss=# SELECT rawtohex('1234567'); rawtohex ---------------- 31323334353637 (1 row)
to_bigint(varchar)
描述:将字符类型转换为bigint类型。
返回值类型:bigint
示例:
openGauss=# SELECT to_bigint('123364545554455'); to_bigint ---------------- 123364545554455 (1 row)
to_binary_float(expr [default return_vaue on conversion error])
描述:将输入内容转换为单精度浮点数。
支持的入参类型:real、double precision、text和NULL值。
可选的[DEFAULT return_expr ON CONVERSION ERROR]指定在
expr
转换失败时该函数返回的值。
返回值类型:real
示例:
openGauss=# select to_binary_float('3.456'); to_binary_float ----------------- 3.456 (1 row) openGauss=# select to_binary_float('3.456Ab'); ERROR: invalid input syntax for type real CONTEXT: referenced column: to_binary_float SQL function "to_binary_float" statement 1 referenced column: to_binary_float openGauss=# openGauss=# select to_binary_float('3.456Ab' default '1.23' on conversion error); to_binary_float ----------------- 1.23 (1 row)
to_char(datetime/interval [, fmt])
描述:将一个DATE、TIMESTAMP、TIMESTAMP WITH TIME ZONE或者TIMESTAMP WITH LOCAL TIME ZONE类型的DATETIME或者INTERVAL值按照fmt指定的格式转换为TEXT类型。
- 可选参数fmt可以为以下几类:日期、时间、星期、季度和世纪。每类都可以有不同的模板,模板之间可以合理组合,常见的模板有:HH、MI、SS、YYYY、MM、DD。
- 模板可以有修饰词,常用的修饰词是FM,可以用来抑制前导的零或尾随的空白。
- 仅在A兼容模式下,入参为interval时,会忽略fmt入参,interval只有year和month时,输出fmt为SYYYY-MM,当year小于两位时会补一位0;interval只有day和time时,输出fmt为SDD HH:MI:SS;interval同时包含两者时,返回错误码
返回值类型:text
示例:
openGauss=# SELECT to_char(current_timestamp,'HH12:MI:SS'); to_char ---------- 10:19:26 (1 row)
openGauss=# SELECT to_char(current_timestamp,'FMHH12:FMMI:FMSS'); to_char ---------- 10:19:46 (1 row)
to_char(datetime/interval, fmt, nls_language={american|english})
描述:同to_char(datetime/interval [, fmt]),增加参数nls_language,值可选american、english
- fmt中的MON等模板,根据nls_language转换成对应语言的表达。
返回值类型:text
示例:
openGauss=# SELECT to_char(DATE '2024-08-05', 'DY, DD-MON-YYYY', 'NLS_DATE_LANGUAGE = ENGLISH') ; to_char ---------- MON, 05-AUG-2024 (1 row)
to_char(double precision/real, text)
描述:将浮点类型的值转换为指定格式的字符串。
返回值类型:text
示例:
openGauss=# SELECT to_char(125.8::real, '999D99'); to_char --------- 125.80 (1 row)
to_char(numeric/smallint/integer/bigint/double precision/real[, fmt])
描述:将一个整型或者浮点类型的值转换为指定格式的字符串。
- 可选参数fmt可以为以下几类:十进制字符、“分组”符、正负号和货币符号,每类都可以有不同的模板,模板之间可以合理组合,常见的模板有:9、0、,(千分隔符)、.(小数点)。
- 模板可以有类似FM的修饰词,但FM不抑制由模板0指定而输出的0。
- 要将整型类型的值转换成对应16进制值的字符串,使用模板X或x。
返回值类型:varchar
示例:
openGauss=# SELECT to_char(1485,'9,999'); to_char --------- 1,485 (1 row)
openGauss=# SELECT to_char( 1148.5,'9,999.999'); to_char ------------ 1,148.500 (1 row)
openGauss=# SELECT to_char(148.5,'990999.909'); to_char ------------- 0148.500 (1 row)
openGauss=# SELECT to_char(123,'XXX'); to_char --------- 7B (1 row)
to_char(interval, text)
描述:将时间间隔类型的值转换为指定格式的字符串。
- 仅在A兼容模式下,会忽略fmt入参,interval只有year和month时,输出fmt为SYYYY-MM,当year小于两位时会补一位0;interval只有day和time时,输出fmt为SDD HH:MI:SS;interval同时包含两者时,返回错误码
返回值类型:text
示例:
openGauss=# SELECT to_char(interval '15h 2m 12s', 'HH24:MI:SS'); to_char ---------- 15:02:12 (1 row)
openGauss=# SELECT to_char(INTERVAL '123-2' YEAR(4) TO MONTH, 'YYY-MON'); to_char --------- +123-02 (1 row)
openGauss=# SELECT to_char(INTERVAL '1 year 2 months 3 days', 'YYYY-MON-DD') ; ERROR: Interval simultaneously includes 'year to month' and 'day to second' is not supported in A format DETAIL: Not support the given interval data. CONTEXT: referenced column: to_char
to_char(int, text)
描述:将整数类型的值转换为指定格式的字符串。
返回值类型:text
示例:
openGauss=# SELECT to_char(125, '999'); to_char --------- 125 (1 row)
to_char(set)
描述:将SET类型的值转换为指定格式的字符串。
返回值类型:text
示例:
- site 是employee的SET类型的字段 openGauss=# select to_char(site) from employee; to_char --------- beijing,nanjing beijing,wuhan (2 rows)
to_char(numeric, text)
描述:将数字类型的值转换为指定格式的字符串。
返回值类型:text
示例:
openGauss=# SELECT to_char(-125.8, '999D99S'); to_char --------- 125.80- (1 row)
to_char(string)
描述:将CHAR、VARCHAR、VARCHAR2、CLOB类型转换为VARCHAR类型。
如使用该函数对CLOB类型进行转换,且待转换CLOB类型的值超出目标类型的范围,则返回错误。
返回值类型:varchar
示例:
openGauss=# SELECT to_char('01110'); to_char --------- 01110 (1 row)
to_char(timestamp, text)
描述:将时间戳类型的值转换为指定格式的字符串。
返回值类型:text
示例:
openGauss=# SELECT to_char(current_timestamp, 'HH12:MI:SS'); to_char ---------- 10:55:59 (1 row)
to_char(blob, [CSID])
描述:仅在A兼容模式下支持本函数,将blob类型的值转换为指定CSID字符集的字符串。
- CSID为int类型,表示A兼容模式下的字符集ID
- CSID为0或不传入CSID时,使用数据库的字符集
CSID到字符集的映射
CSID encoding name openGuass name 1 US7ASCII SQL_ASCII 837 JA16EUCTILDE EUC_JP 850 ZHS16CGB231280 EUC_CN 846 KO16MSWIN949 EUC_KR 862 ZHT16DBT EUC_TW 830 JA16EUC EUC_JIS_2004 852 ZHS16GBK GBK 873 AL32UTF8 UTF8 31 WE8ISO8859P1 LATIN1 32 EE8ISO8859P2 LATIN2 33 SE8ISO8859P3 LATIN3 34 NEE8ISO8859P4 LATIN4 39 WE8ISO8859P9 LATIN5 40 NE8ISO8859P10 LATIN6 47 BLT8ISO8859P13 LATIN7 48 CEL8ISO8859P14 LATIN8 46 WE8ISO8859P15 LATIN9 560 AR8MSWIN1256 WIN1256 45 VN8MSWIN1258 WIN1258 41 TH8TISASCII WIN874 196 CL8KOI8R KOI8R 171 CL8MSWIN1251 WIN1251 178 WE8MSWIN1252 WIN1252 35 CL8ISO8859P5 ISO_8859_5 36 AR8ISO8859P6 ISO_8859_6 37 EL8ISO8859P7 ISO_8859_7 38 IW8ISO8859P8 ISO_8859_8 170 EE8MSWIN1250 WIN1250 173 BG8MSWIN WIN1253 177 TR8MSWIN1254 WIN1254 175 IW8MSWIN1255 WIN1255 179 BLT8MSWIN1257 WIN1257 51 CL8KOI8U KOI8U 854 ZHS32GB18030 GB18030 832 JA16SJIS SJIS 865 ZHT16BIG5 BIG5 返回值类型:text
示例:
CREATE TABLE blob_table (c1 BLOB); INSERT INTO blob_table (c1) VALUES ( (encode('Hello World!','hex'))::RAW ); SELECT to_char(c1, 873) FROM blob_table ; to_char -------------- Hello World! (1 row) SELECT to_char(c1) FROM blob_table ; to_char -------------- Hello World! (1 row)
to_clob(char/nchar/varchar/varchar2/nvarchar/nvarchar2/text/raw)
描述:将RAW类型或者文本字符集类型CHAR、NCHAR、VARCHAR、VARCHAR2、NVARCHAR、NVARCHAR2、TEXT转成CLOB类型。
返回值类型:clob
示例:
openGauss=# SELECT to_clob('ABCDEF'::RAW(10)); to_clob --------- ABCDEF (1 row)
openGauss=# SELECT to_clob('hello111'::CHAR(15)); to_clob ---------- hello111 (1 row)
openGauss=# SELECT to_clob('gauss123'::NCHAR(10)); to_clob ---------- gauss123 (1 row)
openGauss=# SELECT to_clob('gauss234'::VARCHAR(10)); to_clob ---------- gauss234 (1 row)
openGauss=# SELECT to_clob('gauss345'::VARCHAR2(10)); to_clob ---------- gauss345 (1 row)
openGauss=# SELECT to_clob('gauss456'::NVARCHAR2(10)); to_clob ---------- gauss456 (1 row)
openGauss=# SELECT to_clob('World222!'::TEXT); to_clob ----------- World222! (1 row)
to_date(text)
描述:将文本类型的值转换为指定格式的时间戳。目前只支持两类格式。
- 格式一:无分隔符日期,如20150814,需要包括完整的年月日。
- 格式二:带分隔符日期,如2014-08-14,分隔符可以是单个任意非数字字符。
返回值类型:timestamp without time zone
示例:
openGauss=# SELECT to_date('2015-08-14'); to_date --------------------- 2015-08-14 00:00:00 (1 row)
to_date(text, text)
描述:将字符串类型的值转换为指定格式的日期。
类型转换格式请参考表 1
返回值类型:timestamp without time zone
示例:
openGauss=# SELECT to_date('05 Dec 2000', 'DD Mon YYYY'); to_date --------------------- 2000-12-05 00:00:00 (1 row)
to_number( expr [ DEFAULT return_value ON CONVERSION ERROR ] [, fmt ])
描述:将expr按指定格式转换为一个NUMERIC类型的值,若expr部分转换失败,则会尝试转换关键字DEFAULT后的return_value(return_value的输入格式受fmt约束)。
类型转换格式请参考表 2。
fmt整数部分的长度必须大于expr整数部分的长度,若小于则会报错。fmt小数部分可以按需填写长度,输出结果会依照fmt的小数部分长度将expr进行截断。
expr和default后的return_value皆支持隐式转换。(注:NULL加任何值等于NULL)
支持科学计数法。
转换十六进制字符串为十进制数字时,最多支持16个字节的十六进制字符串转换为无符号数。
转换十六进制字符串为十进制数字时,格式字符串中不允许出现除'x'或'X'以外的其他字符,否则报错。
在behavior_compat_options的correct_to_number开关关闭的时候,如有分组,expr分组的个数要求和fmt的分组个数一样,否则报错。
当fmt的模式配置为数值位(模式为9)时,对于expr 中的非数值输入会进行忽略处理。
返回值类型:numeric
示例:
openGauss=# SELECT to_number('12,454.8-', '99G999D9S'); to_number ----------- -12454.8 (1 row)
openGauss=# SELECT to_number('1234.123','999999.99'); to_number ----------- 1234.12 (1 row)
openGauss=# SELECT to_number('111111.111'+'1111','999999.99'); to_number ----------- 112222.11 (1 row)
openGauss=# SELECT to_number('1e5'+'1111','999999.99'); to_number ----------- 101111 (1 row)
openGauss=# SELECT to_number('111111.111'+'1111'+NULL,'999999.99'); to_number ----------- (1 row)
openGauss=# SELECT to_number('此参数错误' default 321456231 on conversion error ,'999,999,999,999.99'); to_number ----------- 321456231 (1 row)
-- behavior_compat_options的correct_to_number开关关闭时不允许分组的数量不一样 openGauss=# select to_number('123.45' ,'999,999.999'); ERROR: invalid data. CONTEXT: referenced column: to_number openGauss=# set behavior_compat_options = 'correct_to_number'; SET openGauss=# select to_number('123.45' ,'999,999.999'); to_number ----------- 123.45 (1 row)
-- 当fmt的模式配置为数值位(模式为9)时,对于expr 中的非数值输入会进行忽略处理 openGauss=# select to_number('123,123','999999999'); to_number ----------- 123123 (1 row) openGauss=# select to_number('123.123','999999999'); to_number ----------- 123123 (1 row) openGauss=# select to_number('123S123','999999999'); to_number ----------- 123123 (1 row)
to_timestamp(double precision)
描述:把UNIX纪元转换成时间戳。
返回值类型:timestamp with time zone
示例:
openGauss=# SELECT to_timestamp(1284352323); to_timestamp ------------------------ 2010-09-13 12:32:03+08 (1 row)
to_timestamp(string [ DEFAULT return_value ON CONVERSION ERROR ] [ , fmt [, 'nlsparam' ] ])
描述:将字符串转换为时间戳。默认的输入格式为[DD-Mon-YYYY HH12:MI:SS.FF],是12小时制的AM。若输入值string不为默认的格式,则需要用户在fmt处描述自己的输入格式,若格式描述错误则报错。若string部分转换失败,则会尝试转换关键字DEFAULT后的return_value(return_value的输入格式受fmt约束)。若Mon处为Jan这样的英文缩写,则可以在nlsparam处设置月份的描述语言(目前仅支持American和English)。
- 类型转换格式请参考表 1。
- 如果输入的年份YYYY=0,系统报错。
- 如果输入的年份YYYY<0,在fmt中指定SYYYY,则正确输出公元前绝对值n的年份。
- fmt中的类似于MM的参数,不可大小写混用。
- fmt和string时间信息中的连接符可以替换为其他符号。例:SELECT to_timestamp('05*Dec^2000', 'DD Mon+YYYY');
- HH和HH12均为01-12小时格式,在fmt指定为HH和HH12的模式下且没明确指定pm的时间戳中,会将时间戳的第12小时按照第0小时处理。
返回值类型:timestamp without time zone
示例:
openGauss=# SHOW nls_timestamp_format; nls_timestamp_format ---------------------------- DD-Mon-YYYY HH:MI:SS.FF AM (1 row)
openGauss=# SELECT to_timestamp('12-sep-2014'); to_timestamp --------------------- 2014-09-12 00:00:00 (1 row)
openGauss=# SELECT to_timestamp ('01-Jan-2002 10:10:10.123000'); to_timestamp ------------------------- 2002-01-01 10:10:10.123 (1 row)
openGauss=# SELECT to_timestamp ('2002-01-01 10:10:10.123000','YYYY-MM-DD HH24:MI:SS.FF'); to_timestamp ------------------------- 2002-01-01 10:10:10.123 (1 row)
openGauss=# SELECT to_timestamp ('此为错误输入' DEFAULT '11-01-11 14:10:10.123000' ON CONVERSION ERROR,'DD-MM-RR HH24:MI:SS.FF'); to_timestamp ------------------------- 2011-01-11 14:10:10.123 (1 row)
openGauss=# SELECT to_timestamp ('01-Jan-03 14:10:10.123000' DEFAULT '11-Jan-11 14:10:10.123000' ON CONVERSION ERROR,'DD-Mon-RR HH24:MI:SS.FF','NLS_DATE_LANGUAGE = American'); to_timestamp ------------------------- 2003-01-01 14:10:10.123 (1 row)
openGauss=# SELECT to_timestamp('-1','SYYYY'); to_timestamp ------------------------ 0001-01-01 00:00:00 BC (1 row)
openGauss=# SELECT to_timestamp('05 Dec 2000', 'DD Mon YYYY'); to_timestamp --------------------- 2000-12-05 00:00:00 (1 row)
openGauss=# SELECT to_timestamp('05*Dec^2000', 'DD Mon+YYYY'); to_timestamp --------------------- 2000-12-05 00:00:00 (1 row)
-- HH或者HH12的模式下,不指定为PM时间时12点按照0点处理 openGauss=# select to_timestamp('2025-09-01 12:24:02','YYYY-MM-DD HH:MI:SS'); to_timestamp --------------------- 2025-09-01 00:24:02 (1 row) openGauss=# select to_timestamp('2025-09-01 12:24:02 pm','YYYY-MM-DD HH:MI:SS pm'); to_timestamp --------------------- 2025-09-01 12:24:02 (1 row)
abstime_text
描述:将abstime类型转为text类型输出。
参数:abstime
返回值类型:text
abstime_to_smalldatetime
描述:将abstime类型转为smalldatatime类型。
参数:abstime
返回值类型:smalldatetime
bigint_tid
描述:将bigint转为tid。
参数:bigint
返回值类型:tid
bool_int1
描述:将bool转为int1。
参数:boolean
返回值类型:tinyint
bool_int2
描述:将bool转为int2。
参数:boolean
返回值类型:smallint
bool_int8
描述:将bool转为tinyint。
参数:boolean
返回值类型:bigint
bpchar_date
描述:将字符串转为日期。
参数:character
返回值类型:date
bpchar_float4
描述:将字符串转为float4。
参数:character
返回值类型:real
bpchar_float8
描述:将字符串转为float8。
参数:character
返回值类型:double precision
bpchar_int4
描述:将字符串转为int4。
参数:character
返回值类型:integer
bpchar_int8
描述:将字符串转为tinyint。
参数:character
返回值类型:bigint
bpchar_numeric
描述:将字符串转为numeric。
参数:character
返回值类型:numeric
bpchar_timestamp
描述:将字符串转为时间戳。
参数:character
返回值类型:timestamp without time zone
bpchar_to_smalldatetime
描述:将字符串转为smalldatetime。
参数:character
返回值类型:smalldatetime
cupointer_bigint
描述:将列存CU指针类型转为bigint类型。
参数:text
返回值类型:bigint
date_bpchar
描述:将date类型转换为bpchar类型。
参数:date
返回值类型:character
date_text
描述:将date类型转换为text类型。
参数:date
返回值类型:text
date_varchar
描述:将date类型转换为varchar类型。
参数:date
返回值类型:character varying
f4toi1
描述:把float4类型强转为tinyint unsigned类型。
参数:real
返回值类型:tinyint unsigned
f8toi1
描述:把float8类型强转为tinyint unsigned类型。
参数:double precision
返回值类型:tinyint unsigned
float4_bpchar
描述:float4转换为bpchar。
参数:real
返回值类型:character
float4_text
描述:float4转换为text。
参数:real
返回值类型:text
float4_varchar
描述:float4转换为varchar。
参数:real
返回值类型:character varying
float8_bpchar
描述:float8转换为bpchar。
参数:double precision
返回值类型:character
float8_interval
描述:float8转换为interval。
参数:double precision
返回值类型:interval
float8_text
描述:float8转换为text。
参数:double precision
返回值类型:text
float8_varchar
描述:float8转换为varchar。
参数:double precision
返回值类型:character varying
i1tof4
描述:tinyint unsigned转换为float4。
参数:tinyint unsigned
返回值类型:real
i1tof8
描述:tinyint unsigned转换为float8。
参数:tinyint unsigned
返回值类型:double precision
i1toi2
描述:tinyint unsigned转换为smallint。
参数:tinyint unsigned
返回值类型:smallint
i1toi4
描述:tinyint unsigned转换为int。
参数:tinyint unsigned
返回值类型:integer
i1toi8
描述:tinyint unsigned转换为bigint。
参数:tinyint unsigned
返回值类型:bigint
i2toi1
描述:smallint转换为tinyint unsigned。
参数:smallint
返回值类型:tinyint unsigned
i4toi1
描述:int转换为tinyint unsigned。
参数:integer
返回值类型:tinyint unsigned
i8toi1
描述:bigint转换为tinyint unsigned。
参数:bigint
返回值类型:tinyint unsigned
int1_avg_accum
描述:将第二个tinyint unsigned类型参数,加入到第一个参数中,一个参数为bigint类型数组。
参数:bigint[], tinyint unsigned
返回值类型:bigint[]
int1_bool
描述:tinyint unsigned转换为bool。
参数:tinyint unsigned
返回值类型:boolean
int1_bpchar
描述:tinyint unsigned转换为bpchar。
参数:tinyint unsigned
返回值类型:character
int1_mul_cash
描述:返回一个tinyint类型参数和一个cash类型参数的乘积,返回值为cash类型。
参数:tinyint, money
返回值类型:money
int1_numeric
描述:tinyint unsigned转换为numeric。
参数:tinyint unsigned
返回值类型:numeric
int1_nvarchar2
描述:tinyint unsigned转换为nvarchar2。
参数:tinyint unsigned
返回值类型:nvarchar2
int1_text
描述:tinyint unsigned转换为text。
参数:tinyint unsigned
返回值类型:text
int1_varchar
描述:tinyint unsigned转换为varchar。
参数:tinyint unsigned
返回值类型:character varying
int1in
描述:字符串转化为无符号一字节整数。
参数:cstring
返回值类型:tinyint
int1out
描述:无符号一字节整数转化为字符串。
参数:tinyint
返回值类型:cstring
int1up
描述:输入整数转化为无符号一字节整数。
参数:tinyint
返回值类型:tinyint
int2_bool
描述:将有符号二字节整数转化为bool型。
参数:smallint
返回值类型:boolean
int2_bpchar
描述:将有符号二字节整数转化为BpChar。
参数:smallint
返回值类型:character
int2_text
描述:有符号二字节整数转化为text类型。
参数:smallint
返回值类型:text
int2_varchar
描述:有符号二字节整数转化为varchar类型。
参数:smallint
返回值类型:character varying
int8_text
描述:tinyint转化为text类型。
参数:bigint
返回值类型:text
int8_varchar
描述:tinyint转化为varchar。
参数:bigint
返回值类型:character varying
intervaltonum
描述:将内部数据类型日期转化为numeric类型。
参数:interval
返回值类型:numeric
numeric_bpchar
描述:numeric转化为bpchar。
参数:numeric
返回值类型:character
numeric_int1
描述:numeric转化为有符号1字节整数。
参数:numeric
返回值类型:tinyint
numeric_text
描述:numeric转化为text。
参数:numeric
返回值类型:text
numeric_varchar
描述:numeric转化为varchar。
参数:numeric
返回值类型:character varying
nvarchar2in
描述:将c字符串转化为varchar。
参数:cstring, oid, integer
返回值类型:nvarchar2
nvarchar2out
描述:将text转化为c字符串。
参数:nvarchar2
返回值类型:cstring
nvarchar2send
描述:将varchar转化为二进制。
参数:nvarchar2
返回值类型:bytea
oidvectorin_extend
描述:将字符串转化为oidvector。
参数:cstring
返回值类型:oidvector_extend
oidvectorout_extend
描述:将oidvector转化为字符串。
参数:oidvector_extend
返回值类型:cstring
oidvectorsend_extend
描述:将oidvector转化为字符串。
参数:oidvector_extend
返回值类型:bytea
reltime_text
描述:reltime转换为text。
参数:reltime
返回值类型:text
text_date
描述:text类型转换为date类型。
参数:text
返回值类型:date
text_float4
描述:text类型转换为float4类型。
参数:text
返回值类型:real
text_float8
描述:text类型转换为float8类型。
参数:text
返回值类型:double precision
text_int1
描述:text类型转换为int1类型。
参数:text
返回值类型:tinyint
text_int2
描述:text类型转换为int2类型。
参数:text
返回值类型:smallint
text_int4
描述:text类型转换为int4类型。
参数:text
返回值类型:integer
text_int8
描述:text类型转换为tinyint类型。
参数:text
返回值类型:bigint
text_numeric
描述:text类型转换为numeric类型。
参数:text
返回值类型:numeric
text_timestamp
描述:text类型转换为timestamp类型。
参数:text
返回值类型:timestamp without time zone
time_text
描述:time类型转换为text类型。
参数:time without time zone
返回值类型:text
timestamp_text
描述:timestamp类型转换为text类型。
参数:timestamp without time zone
返回值类型:text
timestamp_to_smalldatetime
描述:timestamp类型转换为smalldatetime类型。
参数:timestamp without time zone
返回值类型:smalldatetime
timestamp_varchar
描述:timestamp类型转换为varchar类型。
参数:timestamp without time zone
返回值类型:character varying
timestamptz_to_smalldatetime
描述:timestamptz类型转换为smalldatetime。
参数:timestamp with time zone
返回值类型:smalldatetime
timestampzone_text
描述:timestampzone类型转换为text类型。
参数:timestamp with time zone
返回值类型:text
timetz_text
描述:timetz类型转换为text类型。
参数:time with time zone
返回值类型:text
to_integer
描述:转换为integer类型。
参数:character varying
返回值类型:integer
to_interval
描述:转换为interval类型。
参数:character varying
返回值类型:interval
to_numeric
描述:转换为numeric类型。
参数:character varying
返回值类型:numeric
to_nvarchar2
描述:转换为nvarchar2类型。
参数:numeric
返回值类型:nvarchar2
to_text
描述:转换为text类型。
参数:smallint
返回值类型:text
to_ts
描述:转换为ts类型。
参数:character varying
返回值类型:timestamp without time zone
to_varchar2
描述:转换为varchar2类型。
参数:timestamp without time zone
返回值类型:character varying
varchar_date
描述:varchar类型转换为date。
参数:character varying
返回值类型:date
varchar_float4
描述:varchar类型转换为float4。
参数:character varying
返回值类型:real
varchar_float8
描述:varchar类型转换为float8。
参数:character varying
返回值类型:double precision
varchar_int4
描述:varchar类型转换为int4。
参数:character varying
返回值类型:integer
varchar_int8
描述:varchar类型转换为tinyint。
参数:character varying
返回值类型:bigint
varchar_numeric
描述:varchar类型转换为numeric。
参数:character varying
返回值类型:numeric
varchar_timestamp
描述:varchar类型转换为timestamp。
参数:character varying
返回值类型:timestamp without time zone
varchar2_to_smlldatetime
描述:varchar2类型转换为smlldatetime。
参数:character varying
返回值类型:smalldatetime
xidout4
描述:xid输出为4字节数字。
参数:xid32
返回值类型:cstring
xidsend4
描述:xid转换为二进制格式。
参数:xid32
返回值类型:bytea
编码类型转换
convert_to_nocase(text, text)
描述:将字符串转换为指定的编码类型。
返回值类型:bytea
示例:
openGauss=# SELECT convert_to_nocase('12345', 'GBK');
convert_to_nocase
-------------------
\x3132333435
(1 row)
附表
表 1 日期格式化的模板模式
模式 | 描述 |
---|---|
HH | 小时(01-12),不指定为PM时间时12点按照0点处理 |
HH12 | 小时(01-12),不指定为PM时间时12点按照0点处理 |
HH24 | 小时(01-24) |
MI | 分钟(00-59) |
SS | 秒(00-59) |
MS | 毫秒(000-999) |
US | 微秒(000000-999999) |
Y,YYY | 带逗号的年份(4 位或以上) |
YYYY | 年份(4 位或以上) |
BC ,bc ,AD ,ad | 指示年代 |
B.C. ,b.c. ,A.D. ,a.d. | 指示年代 |
MONTH | 大写月份名 |
Month | 驼峰月份名 |
month | 小写月份名 |
MON | 大写月份缩写 |
Mon | 驼峰月份缩写 |
mon | 小写月份缩写 |
MM | 月份(01-12) |
DD | 日期(01-31) |