PostgreSQL:文本日期转DATE类型后仍显示时间部分问题求助
问题解答
- 你执行的
CAST(date1 AS DATE)其实已经把数据转换成PostgreSQL的DATE类型了,这个类型本身是没有时间部分的。你看到的YYYY-MM-DDT00:00:00.000格式,是查询工具(比如pgAdmin、DBeaver等)的默认日期显示规则,它自动给DATE类型补了时间后缀,不是数据本身还带时间。 - 要是想强制输出
YYYY-MM-DD的纯日期字符串格式,直接用to_char函数格式化即可,语句改成:
也可以用PostgreSQL的简写语法,更简洁:SELECT to_char(CAST(date1 AS DATE), 'YYYY-MM-DD') AS date1 FROM tablename;SELECT to_char(date1::DATE, 'YYYY-MM-DD') AS date1 FROM tablename; - 要验证数据类型的话,可加
pg_typeof函数确认:
结果里SELECT pg_typeof(CAST(date1 AS DATE)) AS data_type, CAST(date1 AS DATE) AS date1 FROM tablename;data_type列会显示date,说明确实是DATE类型,显示的时间只是工具的默认渲染效果。
内容的提问来源于stack exchange,提问作者infinite-balloon
相关产品推荐
相关产品推荐

