У меня проблемы с простым выбором.Поле базы данных, в котором хранится DueDate, представляет собой DateTimeOffset.
declare @today Date = GetDate();
Select * from Items where Convert(date, DueDate) = @today
Кажется, это работает до позднего вечера, и в этот момент оно возвращает строки, которые действительно должны быть получены на следующий день.
Проблема: GetDate (), поскольку это Sql-сервер, работающий в Azure, фактически возвращает GetUTCDate ().Таким образом, в 21:00 по восточному поясному времени он возвращает не сегодня, а завтра, потому что время по Гринвичу на 5 часов больше (2 часа ночи, следующий день).
Я сделал @today
дату, чтобы времячасть может быть проигнорирована.
Но в базе данных DueDate имеет значение 2018-12-02 05:00:00.0000000 +00:00
Но когда это приведено к дате, дата будет 2018-12-02
, но @today
будет 2018-12-03
Так как мне написать этот SQL?