Postgres中的时间戳

时间:2013-04-12 11:57:18

标签: sql postgresql date timestamp

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

例如:21 Sep 2012 12:23

有没有办法在timemat中转换它,以便我可以将它与当前时间(即now() - 函数)进行比较?

3 个答案:

答案 0 :(得分:4)

SET DATA TYPE语句中有USINGALTER TABLE个部分。如果您想永久修复该列。

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

请参阅docs

答案 1 :(得分:2)

您正在寻找to_timestamp功能:

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

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

答案 2 :(得分: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')