1

在 Postgres 数据库中,我有一个表,其中一个列将日期作为字符变化数据类型保存。它的格式是dd MMM yyyy HH:mm.

例如:21 Sep 2012 12:23.

有没有办法将它转换为时间戳 fromat 以便我可以将它与当前时间(即now()函数)进行比较?

4

3 回答 3

4

SET DATA TYPEUSING部分的ALTER TABLE声明。如果您想永久修复该列。

ALTER TABLE foo
    ALTER COLUMN my_time_stamp SET DATA TYPE timestamp
    USING to_timestamp(my_time_stamp);

查看文档

于 2013-04-12T12:04:21.823 回答
2

您正在寻找to_timestamp功能:

SELECT to_timestamp('21 Sep 2012 12:23', 'DD Mon YYYY HH24:MI')

http://sqlfiddle.com/#!12/d41d8/785

于 2013-04-12T12:02:25.093 回答
2

我在某处读到过关于 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')

于 2013-04-12T12:08:45.670 回答