Столбец consprtydate имеет тип Timestamp(6)
.
Просто добавьте (или вычтите) литерал INTERVAL
:
WHERE (
rs.liferemaining <= 99999
OR pk.consprtydate <= rs.consprtydate - INTERVAL '1' DAY
OR pk.consprtydate >= rs.consprtydate + INTERVAL '1' DAY
)
или используйте GREATEST
и LEAST
:
WHERE (
rs.liferemaining <= 99999
OR pk.consprtydate <= rs.consprtydate - INTERVAL '1' DAY
OR ( GREATEST( pk.consprtydate, rs.consprtydate )
- LEAST( pk.consprtydate, rs.consprtydate )
>= INTERVAL '1' DAY )
)
или вы можете преобразовать значения TIMESTAMP(6)
в DATE
и затем вычесть, так как по умолчанию это даст разницу в днях (или их долях) :
WHERE (
rs.liferemaining <= 99999
OR ABS( CAST( pk.consprtydate AS DATE ) - CAST( rs.consprtydate AS DATE ) ) >= 1
)
(Однако, если вы заботитесь о долях секунды, тогда этот последний параметр может дать некоторые недействительные ответы, когда значение TIMESTAMP
усекается до DATE
и теряет доли секунды. )