Например, имеем таблицу:
CREATE TABLE logs (Хотим из неё что-то:
l_id bigint DEFAULT nextval('logs_seq'::regclass) NOT NULL,
l_date timestamp without time zone,
);
select count(l_id) from logs where l_date like '%2009-01-01%'Получаем ответ в виде:
ERROR: operator does not exist: timestamp without time zone ~~ unknown at character 43Из официального источника удалось узнать что c версии 8.3 отсутствует автоматическоге приведение типа timestamp к строке. Решение изложено там же. Хотеть чего-то от таблицы в такой ситуации имеет смысл следующим образом:
HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
select count(l_id) from logs where date_trunc('day', l_date) = '2009-01-01'Функция date_trunc позволяет представлять данные из поля timestamp с определенной точностью. В данном случае точность указывается до дня. В документации представлен объемный список параметров функции date_trunc для обеспечения метке времени той или иной точности:
- microseconds
- milliseconds
- second
- minute
- hour
- day
- week
- month
- quarter
- year
- decade
- century
- millennium
Комментариев нет:
Отправить комментарий