Ответ 1
SELECT TO_CHAR('1000 second'::interval, 'HH24:MI:SS')
или, в вашем случае
SELECT TO_CHAR((mycolumn || ' second')::interval, 'HH24:MI:SS')
FROM mytable
Я новичок в PostgreSQL (я много лет использую MS SQL) и вам нужно преобразовать числовой столбец, который содержит время в секундах до формата HH: MM: SS.
У меня есть Googled и обнаружил, что to_char(interval '1000s', 'HH24:MI:SS')
работает, поэтому я пытаюсь использовать его с моим именем поля:
to_char(fieldname, 'HH24:MI:SS')
дает ошибку cannot use "S" and "PL"/"MI"/"SG"/"PR" together
to_char(fieldname::interval, 'HH24:MI:SS')
дает ошибку cannot cast type numeric to interval
Может ли кто-нибудь показать мне, где я ошибаюсь?
SELECT TO_CHAR('1000 second'::interval, 'HH24:MI:SS')
или, в вашем случае
SELECT TO_CHAR((mycolumn || ' second')::interval, 'HH24:MI:SS')
FROM mytable
Чтобы преобразовать секунды в HH: MM: SS
SELECT 120 * interval '1 sec';
Вы получите 00:02:00
Чтобы преобразовать минуты в HH: MM: SS
SELECT 120 * interval '1 min';
Вы получите 02:00:00
Как видно из комментария выше в Amazon Redshift, он не работает. Любое решение?
Я использую следующий запрос:
ВЫБЕРИТЕ TO_CHAR ((secs_from_Secs || 'second') :: интервал, 'HH24: MI: SS') как интервал 1 ИЗ ТАБЛИЦЫ
и я получаю следующую ошибку:
Amazon Недопустимая операция: указанные типы или функции (по одному на каждое сообщение INFO) не поддерживаются в таблицах Redshift.; [Состояние SQL = 0A000, код ошибки БД = 500310]
Предупреждения: функция "to_char (интервал, текст)" не поддерживается.