SQL如何在Postgres中使用相等的运算符动态比较日期列

时间:2017-11-30 04:55:55

标签: sql postgresql

我想仅在当前dateTime1列不等于表中现有的dateTime1列时才将数据插入表中。我尝试运行下面的查询,但是当表中的mydate1为null时,它不会返回有效结果。

INSERT INTO TableA (id, dateTime1, datetime2)
SELECT 123, mydate1, mydate2
WHERE NOT EXISTS (SELECT 1 FROM tableA 
WHERE id=123 and dateTime1 <> mydate1)

基本上我只想在日期列不等于我们尝试插入的当前日期列时才将数据插入表中。

1 个答案:

答案 0 :(得分:1)

使用COALESCE来避免NULL s。

因此,如果您要比较日期,请使用

等结构
<>  COALESCE ( mydate1, someotherdate )

其中someotherdate是任何始终使条件为假的日期(如果您需要这样,则为真)。