各种数据类型(日期/时间、integer、floating point和numeric)转换成格式化的字符串及反过来从格式化的字符串转换成指定的数据类型,在实际操作中经常遇到。下面总结了一些常用的函数。
日期操作函数
函数 | 返回类型 | 描述 | 实例 |
---|
to_char(timestamp,text) | text | 把时间间隔转换为字符串 | to_char(current_timestamp,"HH12:MI:SS") |
to_char(interval,text) | text | 把时间间隔转换为字串 | to_char(interval'15h 12m 12s','HH24:MI:SS') |
to_char(int,text) | text | 把整型转换为字串 | to_char(125,'999') |
to_char(double,precision) | text | 把实数/双精度数转换为字串 | to_char(125.8::real,'999D9') |
to_char(numeric,text) | text | 把numeric转换为字串 | to_char(-125.8,'999D99S') |
to_date(text,text) | date | 把字串转换为日期 | to_date('05 Dec 2000','DD Mon YYYY') |
to_timetamp(text,text) | timestamp | 把字串转换为时间戳 | to_timestamp('05 Dec 2000','DD Mon YYYY' |
to_timetamp(double) | timestamp | 把unix纪元转换为时间戳 | to_timestamp(200120400) |
to_number(text,text) | numeric | 把字串转换为numeric | to_number('12 454.8-','99G999D9S' |
用于日期/时间格式化的模式
模式 | 描述 |
---|
HH | 一天的小时数(01-12) |
HH12 | 一天的小时数(01-12) |
HH24 | 一天的小时数(00-23) |
MI | 分钟(00-59) |
SS | 秒(00-59) |
MS | 毫秒(000-999) |
US | 微秒(000000-999999) |
AM | 正午标识(大写) |
Y,YYY | 带逗号的年(4和更多位) |
YYYY | 年(4和更多位) |
YYY | 年的后三位 |
字符串转换为整型
* 把'12345' 转换为整数
select cast ('12345' as integer);
* 用substring截取字符串,从第8个字符开始截取2个字符
select cast (substring('123344654',8,2) as integer);
替换字符串方法及字符串操作函数
* 把字段coulmn_name里的字符"aaa"替换为'0'
update table_name set coulmn_name=replace(a,"aaa","0");