暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase 8c 函数和操作符 - 类型转换函数 之 类型转换函数

菁菁 2022-10-25
341

  •  cash_words(money)

描述:类型转换函数,将money转换成text。

示例:

gbase=# SELECT cash_words('1.23');

            cash_words

-----------------------------------

 One dollar and twenty three cents

(1 row)

  •  cast(x as y)

描述:类型转换函数,将x转换成y指定的类型。

示例:

gbase=# SELECT cast('22-oct-1997' as timestamp);

      timestamp      

---------------------

 1997-10-22 00:00:00

(1 row)

  •  hextoraw(raw)

描述:将一个十六进制构成的字符串转换为raw类型。

返回值类型:raw

示例:

gbase=# SELECT hextoraw('7D');

 hextoraw

----------

 7D

(1 row)

  •  numtoday(numeric)

描述:将数字类型的值转换为指定格式的时间戳。

返回值类型:timestamp

示例:

gbase=# SELECT numtoday(2);

           numtoday

-------------------------------

 +000000002 00:00:00.000000000

(1 row)

  •  pg_systimestamp()

描述:获取系统时间戳。

返回值类型:timestamp with time zone

示例:

gbase=# SELECT pg_systimestamp();

        pg_systimestamp

-------------------------------

 2022-05-17 17:07:51.267568+08

(1 row)

  •  rawtohex(string)

描述:将一个二进制构成的字符串转换为十六进制的字符串。结果为输入字符的ACSII码,以十六进制表示。

返回值类型:varchar

示例:

码gbase=# SELECT rawtohex('1234567');

    rawtohex    

----------------

 31323334353637

(1 row)

  •  to_bigint(varchar)

描述:将字符类型转换为bigint类型。

返回值类型:bigint

示例:

gbase=# SELECT to_bigint('123364545554455');

    to_bigint    

----------------

 123364545554455

(1 row)

  •  to_char(datetime/interval [, fmt])

描述:将一个DATE、TIMESTAMP、TIMESTAMP WITH TIME ZONE或者TIMESTAMP WITH LOCAL TIME ZONE类型的DATETIME或者INTERVAL值按照fmt指定的格式转换为VARCHAR类型。

可选参数fmt可以为以下几类:日期、时间、星期、季度和世纪。每类都可以有不同的模板,模板之间可以合理组合,常见的模板有:HH、MI、SS、YYYY、MM、DD。

模板可以有修饰词,常用的修饰词是FM,可以用来抑制前导的零或尾随的空白。

返回值类型:varchar

示例:

gbase=# SELECT to_char(current_timestamp,'HH12:MI:SS');

 to_char

----------

 05:08:27

(1 row)

gbase=# SELECT to_char(current_timestamp,'FMHH12:FMMI:FMSS');

to_char

---------

 5:8:34

(1 row)

  •  to_char(double precision/real, text)

描述:将浮点类型的值转换为指定格式的字符串。

返回值类型:text

示例:

gbase=# 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

示例:

gbase=# SELECT to_char(1485,'9,999');

 to_char

---------

  1,485

(1 row)

gbase=# SELECT to_char( 1148.5,'9,999.999');

  to_char   

------------

  1,148.500

(1 row)

gbase=# SELECT to_char(148.5,'990999.909');

   to_char   

-------------

    0148.500

(1 row)

gbase=# SELECT to_char(123,'XXX');

 to_char

---------

   7B

(1 row)

  •  to_char(interval, text)

描述:将时间间隔类型的值转换为指定格式的字符串。

返回值类型:text

示例:

gbase=# SELECT to_char(interval '15h 2m 12s', 'HH24:MI:SS');

 to_char

----------

 15:02:12

(1 row)

  •  to_char(int, text)

描述:将整数类型的值转换为指定格式的字符串。

返回值类型:text

示例:

gbase=# SELECT to_char(125, '999');

 to_char

---------

  125

(1 row)

  •  to_char(numeric, text)

描述:将数字类型的值转换为指定格式的字符串。

返回值类型:text

示例:

gbase=# SELECT to_char(-125.8, '999D99S');

 to_char

---------

 125.80-

(1 row)

  •  to_char(string)

描述:将CHAR、VARCHAR、VARCHAR2、CLOB类型转换为VARCHAR类型。

如使用该函数对CLOB类型进行转换,且待转换CLOB类型的值超出目标类型的范围,则返回错误。

返回值类型:varchar

示例:

gbase=# SELECT to_char('01110');

 to_char

---------

 01110

(1 row)

  •  to_char(timestamp, text)

描述:将时间戳类型的值转换为指定格式的字符串。

返回值类型:text

示例:

gbase=# SELECT to_char(current_timestamp, 'HH12:MI:SS');

 to_char

----------

 10:55:59

(1 row)

  •  to_clob(char/nchar/varchar/varchar2/nvarchar/nvarchar2/text/raw)

描述:将RAW类型或者文本字符集类型CHAR、NCHAR、VARCHAR、VARCHAR2、NVARCHAR、NVARCHAR2、TEXT转成CLOB类型。

返回值类型:clob

示例:

gbase=# SELECT to_clob('ABCDEF'::RAW(10));

 to_clob

---------

 ABCDEF

(1 row) 

 gbase=# SELECT to_clob('hello111'::CHAR(15));

 to_clob  

----------

 hello111

(1 row)

gbase=# SELECT to_clob('gauss123'::NCHAR(10));

 to_clob  

----------

 gauss123

(1 row)

gbase=# SELECT to_clob('gauss234'::VARCHAR(10));

 to_clob  

----------

 gauss234

(1 row)

gbase=# SELECT to_clob('gauss345'::VARCHAR2(10));

 to_clob  

----------

 gauss345

(1 row)

gbase=# SELECT to_clob('gauss456'::NVARCHAR2(10));

 to_clob  

----------

 gauss456

(1 row)

gbase=# SELECT to_clob('World222!'::TEXT);

  to_clob  

-----------

 World222!

(1 row)

  •  to_date(text)

描述:将文本类型的值转换为指定格式的时间戳。目前只支持两类格式。

格式一:无分隔符日期,如20150814,需要包括完整的年月日。

格式二:带分隔符日期,如2014-08-14,分隔符可以是单个任意非数字字符。

返回值类型:timestamp without time zone

示例:

gbase=# SELECT to_date('2015-08-14');

       to_date

---------------------

 2015-08-14 00:00:00

(1 row)

  •  to_date(text, text)

描述:将字符串类型的值转换为指定格式的日期。

返回值类型:timestamp without time zone

示例:

gbase=# SELECT to_date('05 Dec 2000', 'DD Mon YYYY');

       to_date

---------------------

 2000-12-05 00:00:00

(1 row)

 to_number ( expr [, fmt])

描述:将expr按指定格式转换为一个NUMBER类型的值。

类型转换格式请参考表5-8。

转换十六进制字符串为十进制数字时,最多支持16个字节的十六进制字符串转换为无符号数。

转换十六进制字符串为十进制数字时,格式字符串中不允许出现除'x'或'X'以外的其他字符,否则报错。

返回值类型:number

示例:

gbase=# SELECT to_number('12,454.8-', '99G999D9S');

 to_number

-----------

  -12454.8

(1 row)

  •  to_number(text, text)

描述:将字符串类型的值转换为指定格式的数字。

返回值类型:numeric

示例:

gbase=# SELECT to_number('12,454.8-', '99G999D9S');

 to_number

-----------

  -12454.8

(1 row)

  •  to_timestamp(double precision)

描述:把UNIX纪元转换成时间戳。

返回值类型:timestamp with time zone

示例:

gbase=# SELECT to_timestamp(1284352323);

      to_timestamp      

------------------------

 2010-09-13 12:32:03+08

(1 row)

  •  to_timestamp(string [,fmt])

描述:将字符串string按fmt指定的格式转换成时间戳类型的值。不指定fmt时,按参数nls_timestamp_format所指定的格式转换。

如果输入的年份YYYY=0,系统报错。如果输入的年份YYYY<0,在fmt中指定SYYYY,则正确输出公元前绝对值n的年份。fmt中出现的字符必须与日期/时间格式化的模式相匹配,否则报错。

返回值类型:timestamp without time zone

示例:

gbase=# SHOW nls_timestamp_format;

    nls_timestamp_format    

----------------------------

 DD-Mon-YYYY HH:MI:SS.FF AM

(1 row)

    

gbase=# SELECT to_timestamp('12-sep-2014');

    to_timestamp     

---------------------

 2014-09-12 00:00:00

(1 row)

gbase=# SELECT to_timestamp('12-Sep-10 14:10:10.123000','DD-Mon-YY HH24:MI:SS.FF');

      to_timestamp       

-------------------------

 2010-09-12 14:10:10.123

(1 row)

gbase=# SELECT to_timestamp('-1','SYYYY');

      to_timestamp      

------------------------

 0001-01-01 00:00:00 BC

(1 row)

gbase=# SELECT to_timestamp('98','RR');

    to_timestamp     

---------------------

 1998-01-01 00:00:00

(1 row)

gbase=# SELECT to_timestamp('01','RR');

    to_timestamp     

---------------------

 2001-01-01 00:00:00

(1 row)

  •  to_timestamp(text, text)

描述:将字符串类型的值转换为指定格式的时间戳。

返回值类型:timestamp

示例:

 gbase=# SELECT to_timestamp('05 Dec 2000', 'DD Mon YYYY');

    to_timestamp

---------------------

 2000-12-05 00:00:00

(1 row)

               表  数值格式化的模版模式

模式

描述

9

带有指定数值位数的值

0

带前导零的值

.(句点)

小数点

,(逗号)

分组(千)分隔符

PR

尖括号内负值

S

带符号的数值(使用区域设置)

L

货币符号(使用区域设置)

D

小数点(使用区域设置)

G

分组分隔符(使用区域设置)

MI

在指明的位置的负号(如果数字 < 0)

PL

在指明的位置的正号(如果数字 > 0)

SG

在指明的位置的正/负号

RN

罗马数字(输入在 1 和 3999 之间)

TH或th

序数后缀

V

移动指定位(小数)

  •  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转为int8。

参数:boolean

返回值类型:bigint

  •  bpchar_date

描述:将字符串转为日期。

参数:character

返回值类型:date

  •  bpchar_float4

描述:将字符串转为float4。

参数:character

返回值类型:real

  •  bpchar_float8

描述:将字符串转为float8。

参数:character

返回值类型:double precision

  •  bpchar_int4

描述:将字符串转为int4。

参数:character

返回值类型:integer

  •  bpchar_int8

描述:将字符串转为int8。

参数: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类型强转为uint8类型。

参数:real

返回值类型:tinyint

  •  f8toi1

描述:把float8类型强转为uint8类型。

参数:double precision

返回值类型:tinyint

  •  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

描述:uint8转换为float4。

参数:tinyint

返回值类型:real

  •  i1tof8

描述:uint8转换为float8。

参数:tinyint

返回值类型:double precision

  •  i1toi2

描述:uint8转换为int16。

参数:tinyint

返回值类型:smallint

  •  i1toi4

描述:uint8转换为int32。

参数:tinyint

返回值类型:integer

  •  i1toi8

描述:uint8转换为int64。

参数:tinyint

返回值类型:bigint

  •  i2toi1

描述:int16转换为uint8。

参数:smallint

返回值类型:tinyint

  •  i4toi1

描述:int32转换为uint8。

参数:integer

返回值类型:tinyint

  •  i8toi1

描述:int64转换为uint8。

参数:bigint

返回值类型:tinyint

  •  int1_avg_accum

描述:将第二个uint8类型参数,加入到第一个参数中,一个参数为bigint类型数组。

参数:bigint[], tinyint

返回值类型:bigint[]

  •  int1_bool

描述:uint8转换为bool。

参数:tinyint

返回值类型:boolean

  •  int1_bpchar

描述:uint8转换为bpchar。

参数:tinyint

返回值类型:character

  •  int1_mul_cash

描述:返回一个int8类型参数和一个cash类型参数的乘积,返回值为cash类型。

参数:tinyint, money

返回值类型:money

  •  int1_numeric

描述:uint8转换为numeric。

参数:tinyint

返回值类型:numeric

  •  int1_nvarchar2

描述:uint8转换为nvarchar2。

参数:tinyint

返回值类型:nvarchar2

  •  int1_text

描述:uint8转换为text。

参数:tinyint

返回值类型:text

  •  int1_varchar

描述:uint8转换为varchar。

参数:tinyint

返回值类型: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

描述:有符号八字节整数转化为text类型。

参数:bigint

返回值类型:text

  •  int8_varchar

描述:有符号八字节整数转化为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类型转换为int8类型。

参数: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类型转换为int8。

参数: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

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论