См. date_trunc
документацию :
Возвращаемое значение имеет тип отметки времени или интервала со всеми полями, которые менее значимы, чем выбранное, установленное в ноль (или одно, для дня и месяца).
Таким образом, вы не можете сравнить его с пустой строкой:
date_trunc('day', admission_datetime) = ''
Сообщение об ошибке invalid input syntax for type timestamp
касается пустой строки (''
), а не столбец admission_datetime
.
Кроме того, в PostgreSQL нет функции date_diff
.Просто вычтите одно timestamp
из другого, и вы получите interval
результат:
SELECT timestamp '2001-09-29 03:00' - timestamp '2001-09-27 12:00'
Вы получите
interval '1 day 15:00:00'
Если вам понадобится разница в дней, попробуйте это:
SELECT DATE_PART('day', timestamp '2001-09-29 03:00' - timestamp '2001-09-27 12:00')
Результат 1
.
См. здесь для примеров DATEDIFF
подобных выражений в PostgreSQL.