PostgreSQL 13.10日期格式化:如何获取仅YYYY-MM-DD格式日期
PostgreSQL 13.10 日期格式化问题解决方法
问题出在你将TO_CHAR生成的日期字符串又强制转换为timestamp类型,导致PostgreSQL自动解析回带时间部分的时间戳,最终输出包含时间信息。以下两种方法可以解决:
方法一:直接保留TO_CHAR的字符串结果
不需要将TO_CHAR的输出转换为timestamp,直接使用生成的文本格式即可:
SELECT DISTINCT m.id, TO_CHAR(m.date, 'YYYY-MM-DD') AS formatted_date FROM "table".match m
TO_CHAR返回的是text类型,结果会直接显示为2012-12-02。
方法二:转换为date类型(适合需日期运算的场景)
如果需要字段保持日期类型而非字符串,可以直接将原始时间字段转换为date类型,PostgreSQL默认会以YYYY-MM-DD格式输出:
SELECT DISTINCT m.id, m.date::date AS formatted_date FROM "table".match m
注意:如果使用GUI客户端仍显示带时间的格式,可能是客户端自身的显示设置问题,此时方法一的字符串输出更能保证格式符合预期。
内容的提问来源于stack exchange,提问作者Vitor Barreto
相关产品推荐
相关产品推荐

