【发布时间】:2013-04-12 11:57:18
【问题描述】:
在 Postgres 数据库中,我有一个表,其中一个列将日期保存为 字符变化 数据类型。其格式为dd MMM yyyy HH:mm。
例如:21 Sep 2012 12:23.
有没有办法将它转换为时间戳 fromat 以便我可以将它与当前时间进行比较(即 now()- 函数)?
【问题讨论】:
标签: sql postgresql date timestamp
在 Postgres 数据库中,我有一个表,其中一个列将日期保存为 字符变化 数据类型。其格式为dd MMM yyyy HH:mm。
例如:21 Sep 2012 12:23.
有没有办法将它转换为时间戳 fromat 以便我可以将它与当前时间进行比较(即 now()- 函数)?
【问题讨论】:
标签: sql postgresql date timestamp
ALTER TABLE 语句有 SET DATA TYPE 和 USING 部分。如果您想永久修复该列。
ALTER TABLE foo
ALTER COLUMN my_time_stamp SET DATA TYPE timestamp
USING to_timestamp(my_time_stamp);
见docs
【讨论】:
你正在寻找to_timestamp函数:
SELECT to_timestamp('21 Sep 2012 12:23', 'DD Mon YYYY HH24:MI')
【讨论】:
HH,而是使用HH24。
我在某个地方读到过关于 to_timestamp
试试这个to_timestamp(text, text)
functionname:---to_timestamp(text, text)
returntype---timestamp with time zone
its function---convert string to time stamp
示例:to_timestamp('05 Dec 2000', 'DD Mon YYYY')
【讨论】: