Каков хороший способ проверить, находятся ли два даты и времени в один и тот же календарный день в TSQL?
Вы в значительной степени sql-server должны содержать левую часть transact-sql предложения where в чистоте. Итак, обычно sql-query вы делаете что-то вроде:
WHERE MyDateTime >= @activityDateMidnight
AND MyDateTime < (@activityDateMidnight + 1)
(Некоторые ms-sql-server люди предпочитают вместо user-defined-functions этого DATEADD(d, 1, @activityDateMidnight) - но mssql это одно и то же).
Однако sql таблица TimeZone немного transact-sql усложняет дело. Это немного tsql неясно из вашего фрагмента, но sql-select похоже, что t.TheDateInTable ms-sql-server находится в GMT с идентификатором sql-select часового пояса, и что затем tsql вы добавляете смещение для transact-sql сравнения с @activityDateMidnight, которое sql-query находится в местном времени. Однако transact-sql я не уверен, что такое ds.LocalTimeZone.
Если mssql это так, то вместо этого datetime-functions вам нужно перевести @activityDateMidnight mssql в GMT.
sql
sql-server
tsql
datetime
user-defined-functions
Каков хороший способ проверить, находятся ли два даты и времени в один и тот же календарный день в TSQL?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.