PostgreSQL 数据库中 to_char() 函数是一个常用的日期和数字格式化函数,它可以将日期、时间、数字等类型的数据转换为字符串,to_char() 函数的语法如下:
to_char(value, format)
value
是要转换的值,可以是日期、时间、数字等类型;format
是转换后的字符串格式。
本文将介绍 to_char() 函数的一些常用操作。
日期格式化
1、将日期转换为指定格式的字符串
SELECT to_char(now(), 'YYYYMMDD');
上述 SQL 语句将当前日期转换为 "20220815" 这样的格式。now()
函数获取当前日期和时间,'YYYYMMDD'
是指定的日期格式。
2、将日期和时间一起转换为指定格式的字符串
SELECT to_char(now(), 'YYYYMMDD HH24:MI:SS');
上述 SQL 语句将当前日期和时间一起转换为 "20220815 14:30:00" 这样的格式。HH24
表示小时(24小时制),MI
表示分钟,SS
表示秒。
数字格式化
1、将数字转换为指定格式的字符串
SELECT to_char(1234567.89, '9,999,999.99');
上述 SQL 语句将数字 1234567.89 转换为 "12,345,678.90" 这样的格式。'9,999,999.99'
是指定的数字格式,表示整数部分每三位用逗号分隔,小数部分保留两位小数。
2、将科学计数法表示的数字转换为指定格式的字符串
SELECT to_char(1.23e4, '9,999,999.99');
上述 SQL 语句将科学计数法表示的数字 1.23e4(即 12300)转换为 "12,300.00" 这样的格式。'9,999,999.99'
是指定的数字格式。
自定义格式化
除了使用内置的格式外,还可以自定义格式化模板,将数字转换为大写字母表示:
SELECT to_char(1234567.89, 'FM$9,999,999.99');
上述 SQL 语句将数字 1234567.89 转换为 "ONE MILLION TWO HUNDRED AND FORTY THOUSAND FIVE HUNDRED SIXTY SEVEN DOLLARS AND EIGHTY NINE CENTS" 这样的格式。FM$
表示货币符号,$
表示美元符号,其他常用的自定义格式化模板如下:
模板 | 说明 |
D | 十进制整数 |
F | 浮点数 |
O | 八进制整数 |
X | 十六进制整数 |
U | Unicode(通用字符集)字符串 |
W | Unicode(通用字符集)字符串(宽字符) |
A | IPv6地址 |
I | IPv4地址 |
R | IRI(统一资源标识符) |
S | SQL标识符 |
L | LOCALTIME或LOCALTIMESTAMP |
T | TIME或TIMESTAMP |
Z | 时区名称 |
J | JSON值 |
H | HTML实体 |
M | MIME类型 |
P | 百分比 |
Q | 带千位分隔符的有理数 |
Y | 四元组(year, month, day, hour) |
p | 带千位分隔符的定点数 |
B | 二进制值 |
XB | 十六进制字节串 |
XH | 十六进制整数(大端序) |
XO | 八进制整数(大端序) |
XS | 十六进制字符串(大端序) |
XW | Unicode(通用字符集)字符串(宽字符,大端序) |
YM | 年月(如201208) |
YQ | 年季度(如2012年第3季度) |
YS | 年周(如2012年第30周) |
YT | 年月日时分秒(如20120815 14:30:00) |
YW | 年周(如2012年第30周) |
YZ | 时区缩写(如PST) |
abbrtime | 缩写时间(如3:45PM) |
algnacsemicolon | 对齐冒号分隔的数字列表(如1;2;3) |
algnapseparatorcolon | 对齐冒号分隔的数字列表(如1:2:3) |
algnapseparatorspace | 对齐空格分隔的数字列表(如1 2 3) |
amnameorpmname | 上午/下午名称(如上午/下午) |
| chrlower || chrupper || chrsmid || chrfld || chrtrailing || chruppr || chruspc || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvbar || chrvba r||chrzerodigit||chrxdigit||chryodigit||chrspace||chrubinvisible||chrltchar||chrvechar||chrtlineterminator||chrtcarriagereturn||chrtbackslash||chrthorizontaltab||chrtformfeed||chrtnewline||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtbl||chrrevtblorigbyte| ++++++++++++++++++
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/509862.html