SQL сравнение нулевой даты с другой датой - PullRequest
0 голосов
/ 21 июня 2020

У меня есть этот код, и я хотел бы понять, почему он печатает 'Equal' при сравнении нулевой даты с ненулевой датой.

Что мне делать, если я хочу сделать обновление, и это происходит ?

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

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

С уважением, Элио Фернандес

1 Ответ

3 голосов
/ 21 июня 2020

Практически любое сравнение с 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 
...