如何在PostgreSQL中格式化日期列数据为无分隔符格式
解决方案
使用PostgreSQL内置的to_char()函数可以直接将timestamp类型格式化为你需要的无横杠日期字符串,无需先转成varchar再处理。
修改后的查询语句:
SELECT to_char(t.date, 'YYYYMMDD') FROM generate_series(timestamp '2020-02-27' , timestamp '2020-03-01' , interval '1 day') AS t(date);
说明
to_char()是PostgreSQL专门用于格式化日期、时间和数值的函数,第一个参数是要格式化的时间值,第二个参数是格式模板:YYYY:4位年份MM:2位月份(不足两位补0)DD:2位日期(不足两位补0)
- 这种方式比先转varchar再处理的效率更高,也更符合SQL最佳实践,避免字符串操作带来的潜在问题。
如果一定要基于原有varchar转换结果做处理(不推荐),也可以用replace()和left()组合实现:
SELECT left(replace(t.date::varchar, '-', ''), 8) FROM generate_series(timestamp '2020-02-27' , timestamp '2020-03-01' , interval '1 day') AS t(date);
内容的提问来源于stack exchange,提问作者Mohit Singla
相关产品推荐
相关产品推荐

