【问题标题】:Timestamp related in PostgresPostgres中相关的时间戳
【发布时间】:2013-04-12 11:57:18
【问题描述】:

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

例如:21 Sep 2012 12:23.

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

【问题讨论】:

标签: sql postgresql date timestamp


【解决方案1】:

ALTER TABLE 语句有 SET DATA TYPEUSING 部分。如果您想永久修复该列。

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

docs

【讨论】:

  • 我需要它来保持字符变化的数据类型。无论如何,正如 A.H. 提到的非常好的指出。
【解决方案2】:

你正在寻找to_timestamp函数:

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

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

【讨论】:

  • 我确定您不想使用HH,而是使用HH24
  • @A.H.谢谢,我什至不知道 HH12 是默认值。
【解决方案3】:

我在某个地方读到过关于 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-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-09
    • 2017-08-15
    • 2017-12-17
    • 2023-03-19
    • 2017-06-24
    相关资源
    最近更新 更多