我正在尝试从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;
答案 0 :(得分:7)
如果您需要从时间戳开始的确切时间,只需投射到时间:
SELECT
CAST(colname AS time)
FROM
tablename;
如果您需要格式化,to_char()是您的最佳选择。
答案 1 :(得分: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')