Как вычесть два раза в Postgres, если они хранятся в виде символов, изменяющихся?

#sql #postgresql

Вопрос:

У меня есть таблица, в которой хранятся столбцы time_attended и time_departed с сайта.

например, time_attended = «16:00» и time_departed = «17:00″

Они хранятся в виде полей с переменными символами — как бы я нашел разницу во времени?

Выполнение преобразования, например — ВЫБЕРИТЕ time_attended::дата — разделенное время::дата ИЗ таблицы

выдает синтаксическую ошибку » недопустимый синтаксис ввода для даты типа: «16:00″»

Есть какие-нибудь идеи? Спасибо

Комментарии:

1. Эти столбцы должны быть определены time с самого начала, а не как varchar

Ответ №1:

Если это значения времени, приведите их к а time не а date

 select time_attended::time - time_departed::time from the_table  

Комментарии:

1. Фантастическое спасибо большое! — очень просто. Как бы я преобразовал это в минуты? Он возвращает интервал типа данных для разницы в часах

2. Мне удалось преобразовать в минуты — спасибо за помощь