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

Ghi*_*que 6 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;
Run Code Online (Sandbox Code Playgroud)

Fra*_*ens 8

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

SELECT
    CAST(colname AS time)
FROM
    tablename;
Run Code Online (Sandbox Code Playgroud)

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


Wol*_*lph 5

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

但是代替使用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')
Run Code Online (Sandbox Code Playgroud)