Мне нужен запрос к серверу sql для получения ежедневного количества строк за данный месяц.Моя метка времени хранится в GMT, но мой месяц должен быть определен клиентом по местному времени.Этот код, кажется, работает, но очень неприятен и, вероятно, станет медленным, поскольку таблица растет даже с EntryDate в качестве индекса.Есть ли более простой способ?Клиенты будут в разных часовых поясах, поэтому я не могу создать дополнительный столбец.Месяц / год / часовой пояс в этом примере жестко запрограммированы, но будут передаваться через параметры в код C # для выполнения SQL.
Я использую Microsoft SQL Azure (RTM) - 12. Было бы многобыстрее передать смещение в часах и сместить даты, используя это?
select CreateDate=DATEPART(DAY, EntryDate AT TIME ZONE 'Greenwich Standard Time' AT TIME ZONE 'Central Standard Time'), Items=count(1)
from TestTable1
where year(EntryDate AT TIME ZONE 'Greenwich Standard Time' AT TIME ZONE 'Central Standard Time') = 2018
and month(EntryDate AT TIME ZONE 'Central Standard Time' AT TIME ZONE 'Greenwich Standard Time') = 9
group by DATEPART(DAY, EntryDate AT TIME ZONE 'Greenwich Standard Time' AT TIME ZONE 'Central Standard Time')
order by 1
Любые идеи приветствуются !!!