Есть ли лучший способ извлечь время суток? - PullRequest
6 голосов
/ 16 сентября 2010

Я пытаюсь извлечь время дня из столбца 'timestamp' в PostgreSQL. Вот как я это сделал, но ... это ужасно. Идея как это сделать лучше?

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 ]

7 голосов
/ 16 сентября 2010

Если вам нужно точное время из отметки времени, просто приведите ко времени:

SELECT
    CAST(colname AS time)
FROM
    tablename;

Если вам нужно форматирование, to_char () - ваш лучший вариант.

5 голосов
/ 16 сентября 2010

Зависит от того, в каком формате вы хотите, конечно.

Но вместо использования 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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...