Zanima me da li neko može objasniti pojavu koju sam nedavno primjetio u SQL-u, a odnosi se na podatke tipa datetime i njihovo uspoređivanje.
primjer 1.
declare @d1 datetime
declare @d2 datetime
select @d1 = '2010-01-01 00:00:00.002', @d2 = '2010-01-01 00:00:00.003'
if (@d1 = @d2)
select 'isto'
else
select 'nije isto'
Rezultat ovog upita je "isto"
primjer 2.
declare @d1 datetime
declare @d2 datetime
select @d1 = '2010-01-01 00:00:00.004', @d2 = '2010-01-01 00:00:00.005'
if (@d1 = @d2)
select 'isto'
else
select 'nije isto'
rezultat je "nije isto"
Znači, kada se radi o razlici samo 1 milisekunde, nekada vraća da su podaci jednaki, a nekada da nisu jednaki. Slobodno probajte sa nekim drugim vrijednostima, bitno je samo da je razlika 1 milisekunda.