将时间戳或间隔转换为字符串
你可以使用 to_char()
函数将 timestamp
或 interval
值转换为字符串:
SELECT to_char('2016-08-12 16:40:32'::timestamp, 'DD Mon YYYY HH:MI:SSPM');
该声明将产生字符串“2016 年 8 月 12 日 04:40:32 PM”。格式化字符串可以用许多不同的方式修改; 可以在此处找到模板模式的完整列表。
请注意,你还可以将纯文本插入格式化字符串,并且可以按任何顺序使用模板模式:
SELECT to_char('2016-08-12 16:40:32'::timestamp,
'"Today is "FMDay", the "DDth" day of the month of "FMMonth" of "YYYY');
这将产生字符串“今天是星期六,即 2016 年 8 月的第 12 天”。但是,你应该记住,除非纯文本是双引号,否则任何模板模式 - 甚至是单字母模式(如 I
,D
,W
)都会被转换。作为安全措施,你应该将所有纯文本放在双引号中,如上所述。
你可以使用 TM(转换模式)修改器将字符串本地化为你选择的语言(日期和月份名称)。此选项使用运行 PostgreSQL 的服务器的本地化设置或连接到它的客户端。
SELECT to_char('2016-08-12 16:40:32'::timestamp, 'TMDay, DD" de "TMMonth" del año "YYYY');
凭借西班牙语区域设置,这将产生“Sábado,12 de Agostodelaño2016”。