У меня есть атрибут timestamp в таблице, на которой я хочу поместить условие в sql-запрос, где значение условия является временной отметкой unix (т. Е. Числовым длинным значением).Postgres сравнить временную метку с длинной временной отметкой unix
[...] table.timestampattr > 6456454654 [...]
Как это сделать?
Здесь to_timestamp() является лучшим выбором. Он оценивает константу. Извлечение эпохи из столбца временной метки должно оцениваться для каждой строки. –
@ MikeSherrill'Catcall 'Хорошая точка. Ключевым моментом является то, что 'to_timestamp' определяется как' IMMUTABLE', поэтому планировщик запросов должен знать, чтобы запустить его один раз и кэшировать результат. – IMSoP
Обе функции неизменяемы. Разница в том, что в * этом * случае to_timestamp() вызывается с постоянным аргументом, а extract() вызывается с другим аргументом в каждой строке. Если OP сохранил эпоху Unix в таблице и ей нужно было сравнить ее с постоянным значением временной метки типа, то выбор extract() был бы лучшим выбором. –