30-секундное смещение с небольшим сравнением времени на SQL - PullRequest
0 голосов
/ 24 мая 2018

Я столкнулся со странной проблемой при сравнении дат (на самом деле smalldatetime) в SQL Server.Похоже, что при сравнении дат ближе к концу дня смещение / смещение составляет 30 секунд:

Это правильно:

enter image description here

Но это определенно не правильно:

enter image description here

Что здесь происходит?Математика сломана?

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Если вы прочитаете [документацию] [1] для smalldatetime, вы увидите следующее примечание:

https://docs.microsoft.com/en-us/sql/t-sql/data-types/smalldatetime-transact-sql?view=sql-server-2017

Точность одна минута

Другими словами, буквальное значение округляется.В результате, то, что вы видите, не то, что вы получаете.

0 голосов
/ 24 мая 2018

Тип smalldatetime имеет точность в одну минуту , поэтому литерал '2019-12-31 23:59:30' округляется до '2020-01-01 00:00:00',

...