Мое приложение должно собирать покупки «во вторник» для всех мест по всему миру, где «Tueday» - это вторник во вторник (независимо от часового пояса). И если пользователю нужно повторно запустить отчет на следующей неделе, мне нужно все же получить данные «последнего вторника». Все наши данные хранятся с использованием DateTimeOffset.SQL Server DateTimeOffset соответствует одному и тому же «дню»
Так 9/4/12 00:00:00 -7 через 9/4/12 23:59:59 -7 должен СООТВЕТСТВУЕТ 9/4/12 00:00:00 +11 через 9/4/12 23:59:59 +11 , когда я выполняю предложение WHERE.
Я не могу конвертировать в UTC в предложение WHERE, потому что это заберет данные для «Вторника» в Лондоне (в зависимости от DST), а не во вторник.
Я пробовал конвертировать из DateTimeOffset в DateTime, но это, похоже, конвертируется в UTC. (В моих тестах, прохождение 9/1/12 по 9/30/12 взяло данные 8/31/12.)
Есть ли трюк, чтобы сделать что-то подобное с TSQL?
Спасибо!
Чтобы уточнить, у каждого местоположения 'datetime' есть другой часовой пояс? – Kermit