PostgreSQL:如何将文本日期转换为'YYYY-MM-DD'格式

j7dteeu8  于 2024-01-07  发布在  PostgreSQL
关注(0)|答案(2)|浏览(155)

我在参加postgre SQL的在线考试。第一步是关于清理数据,在text数据类型中有一个名为'date 1'的列,格式为:YYYY-MM-DDT 00:00:00.000。要求将其转换为日期(数据类型)并以YYYY-MM-DD格式显示。要求不更新表,只需按照指令查询表。
我所做的是:SELECT CAST(date 1 AS DATE)AS date 1 FROM tablename
然而,当表显示时,它仍然显示date 1列的格式为:YYYY-MM-DDT 00:00:00.000我想一旦它转换为日期数据类型,它就不应该再显示时间部分了。有人能帮忙吗?非常感谢!

ztigrdn8

ztigrdn81#

如果您感兴趣,这里有一个使用To_Char函数的替代解决方案

SELECT TO_CHAR(CAST('2024-01-02T14:28' AS DATE), 'YYYY-MM-DD');

字符串

bvk5enib

bvk5enib2#

从版本16开始,您可以使用函数pg_input_is_valid()来检查内容是否有效,以避免在将内容转换为正确的数据类型时出错。由于一个DATE只包含年,月和月的日期,因此您永远不会以分钟或秒结束。

SELECT CAST(date1 AS DATE) AS date1
FROM tablename
WHERE pg_input_is_valid(date1, 'date');

字符串
如果你在结果中看到一个时间,那一定是你的SQL客户端把结果弄得一团糟。这将是你必须在客户端中修复的问题,因为数据库做得很好。

相关问题