【问题标题】:How to get the date and time from timestamp in PostgreSQL select query?如何从 PostgreSQL 选择查询中的时间戳获取日期和时间?
【发布时间】:2013-06-26 03:03:45
【问题描述】:

如何从 PostgreSQL 中的时间戳中获取最多分钟而不是秒的日期和时间。我需要日期和时间。

例如:

2000-12-16 12:21:13-05 

从这里我需要

2000-12-16 12:21 (no seconds and milliseconds only date and time in hours and minutes)

从带有时区字段的时间戳,比如update_time,我如何使用 PostgreSQL 选择查询获取日期和时间,就像上面一样。

请帮帮我。

【问题讨论】:

  • 呃...SELECT fieldname FROM table。请提供更多详细信息,这没有多大意义。 PostgreSQL 版本?您用来访问 PostgreSQL 的客户端程序/驱动程序?显示您遇到的问题的代码?

标签: sql postgresql select timestamp


【解决方案1】:

要从timestamp(或timestamptz)获得date,一个简单的cast是最快的:

SELECT now()::date

无论哪种方式,您都会根据您的本地时区获得date

如果您想要特定格式的text,请使用to_char(),例如@davek provided

如果要将timestamp 的值截断(向下舍入)为时间单位,请使用date_trunc()

SELECT date_trunc('minute', now());

【讨论】:

    【解决方案2】:

    postgresql 有很多日期时间函数:

    在此处查看列表

    http://www.postgresql.org/docs/9.1/static/functions-datetime.html

    例如

    SELECT EXTRACT(DAY FROM TIMESTAMP '2001-02-16 20:38:40');
    Result: 16
    

    对于格式化,您可以使用这些:

    http://www.postgresql.org/docs/9.1/static/functions-formatting.html

    例如

    select to_char(current_timestamp, 'YYYY-MM-DD HH24:MI') ...
    

    【讨论】:

      【解决方案3】:

      这就够了:

      select now()::date, now()::time
          , pg_typeof(now()), pg_typeof(now()::date), pg_typeof(now()::time)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-11
        • 2012-03-06
        • 2023-03-22
        • 1970-01-01
        • 2014-05-22
        • 1970-01-01
        • 2021-09-26
        • 1970-01-01
        相关资源
        最近更新 更多