将空日期与另一个日期进行比较的sql server

tpgth1q7  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(348)

我有这个代码,我想了解为什么它打印'相等'比较时,空日期与非空日期。
如果我想做一个更新而发生这种情况,我该怎么办?

Declare @OldDate date               
Declare @NewDate date = '05/02/1960'        

if(@OldDate <> @NewDate)
    Print 'Different'
else
    Print 'Equal'

你好,埃利奥·费尔南德斯

wmomyfyw

wmomyfyw1#

几乎可以和 NULL 退货 NULL . 在大多数情况下, NULL 被视为假的。因此,你得到不平等。
您没有指定数据库。标准支架 NULL -安全比较:

@oldDate is distinct from @newDate

并不是所有的数据库都支持这种语法,所以您需要更加明确;

@oldDate <> @newDate or
@oldDate is null and @newDate is not null or
@oldDate is not null and @newDate is null

相关问题