PostgreSQL-как преобразовать секунды в числовом поле в HH:MM:SS

Я новичок в PostgreSQL (я использую MS SQL в течение многих лет) и должен преобразовать числовой столбец, который содержит время в секундах, в формат HH:MM:SS.

я погуглил и нашел, что 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

может ли кто-нибудь показать мне, где я ошибаюсь?

2 ответов


SELECT  TO_CHAR('1000 second'::interval, 'HH24:MI:SS')

или, в вашем случае

SELECT  TO_CHAR((mycolumn || ' second')::interval, 'HH24:MI:SS')
FROM    mytable

для преобразования секунд в ЧЧ:мм:СС

SELECT 120 * interval '1 sec';

вы получите 00:02:00

для преобразования минут в ЧЧ: мм: СС

SELECT 120 * interval '1 min'; 

вы получите 02:00:00