PostgreSQL: столбец, содержащий секунды, часы, минуты, секунды, дни INTERVAL SECONDSDIFF - PullRequest
0 голосов
/ 26 июня 2019

Я хочу преобразовать столбец, содержащий секунды (т.е. 11549404) в дни, часы, минуты, секунды

SELECT (myCol || ' second')::interval, 'HH24 hrs MI "minutes" SS "seconds"') AS duration
FROM public.myTable

, который возвращает следующее;

"3208 часов 10 минут 04 секунд"

Как отобразить его в виде дней, часов, минут, секунд

1 Ответ

0 голосов
/ 26 июня 2019

Поскольку у некоторых дней 23 часа, а у других 25 часов, результат является непростой задачей (это невозможно, потому что не знаю абсолютного значения). interval тип - это структура месяцев, дней и секунд. Значения не перемещаются автоматически между этими полями, так как у точек монтирования разное количество дней, у дней - разное количество секунд. Но вы можете сделать некоторую нормализацию - есть функция justify_interval, которая ожидает, что дни имеют 24 часа каждый раз:

postgres=# select justify_interval('3208 hrs 10 minutes 04 seconds'::interval);
+-------------------------+
|    justify_interval     |
+-------------------------+
| 4 mons 13 days 16:10:04 |
+-------------------------+
(1 row)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...