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

时间:2010-09-16 07:23:18

标签: sql postgresql

我正在尝试从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 个答案:

答案 0 :(得分:7)

如果您需要从时间戳开始的确切时间,只需投射到时间:

SELECT
    CAST(colname AS time)
FROM
    tablename;

如果您需要格式化,to_char()是您的最佳选择。

答案 1 :(得分:5)

这取决于你想要它的格式。

但是,使用date_part可能更容易,而不是使用to_charhttp://www.postgresql.org/docs/8.4/interactive/functions-formatting.html#FUNCTIONS-FORMATTING-DATETIME-TABLE

所以在你的情况下可能是这样的:

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