代码之家  ›  专栏  ›  技术社区  ›  Ghislain Leveque

有没有更好的方法提取一天中的时间?

  •  6
  • Ghislain Leveque  · 技术社区  · 14 年前

    我试图从PostgreSQL中的“timestamp”列中提取一天中的时间。我是这样做的,但是。。。太可怕了。如何做得更好?

    SELECT (
        date_part('hour', date_demande)::text   || ' hours '   ||
        date_part('minute', date_demande)::text || ' minutes ' ||
        date_part('second', date_demande)::text || ' seconds'
        )::interval AS time_of_day
    
    FROM table;
    
    2 回复  |  直到 14 年前
        1
  •  8
  •   Frank Heikens    14 年前

    如果您需要时间戳中的确切时间,只需转换为时间:

    SELECT
        CAST(colname AS time)
    FROM
        tablename;
    

    如果您需要格式化,那么使用\u char()是最好的选择。

        2
  •  5
  •   Wolph    14 年前

    但不是用 date_part 它可能更容易使用 to_char 相反。 http://www.postgresql.org/docs/8.4/interactive/functions-formatting.html#FUNCTIONS-FORMATTING-DATETIME-TABLE

    所以在你的情况下,也许是这样的:

    to_char(current_timestamp, 'HH:MI:SS')