Мне нужно получить все значения из базы данных SQL Server по дням (24 часа). У меня есть столбец меток времени в таблице TestAllData
, и я хочу выбрать данные, которые соответствуют только определенному дню.
Например, есть метки времени типа DateTime
, такие как '2019-03-19 12:26:03.002', '2019-03-19 17:31:09.024'
и '2019-04-10 14:45:12.015'
, поэтому я хочу загрузить данные для дня 2019-03-19
и отдельно для дня 2019-04-10
. По сути, необходимо получить значения DateTime с той же датой.
Можно ли использовать для этого некоторые функции, например DatePart
или DateDiff
?
А как мне вообще решить такую проблему?
Как и в этом случае, я не знаю точной разницы в часах между отметкой времени и концом дня (поскольку существуют разные отметки времени на 1 день), и мне нужно извлечь сам день из отметки времени. После этого мне нужно сгруппировать данные по дням или что-то вроде этого и получить блок за блоком. Например:
'2019-03-19' - 1200 записей
'2019-04-10' - 3500 записей
'2019-05-12' - 10000 записей и т. Д.
Я ищу более общее решение, не предоставляющее временную метку (например, '2019-03-19') в качестве границы или в предложении where, потому что проблема не в простой фильтрации данных по какой-либо дате !!
ОБНОВЛЕНИЕ: В моем наборе данных у меня около 1 000 000 записей и более 100 уникальных дат. Я думал о том, чтобы извлечь набор уникальных дат и затем выполнить запрос в цикле, где данные будут отфильтрованы по указанному дню. Это выглядело бы так:
select * from TestAllData where dayColumn = '2019-03-19'
select * from TestAllData where dayColumn = '2019-04-10'
select * from TestAllData where dayColumn = '2019-05-12'
...
Я мог бы использовать этот запрос в своем коде, поэтому я могу запустить его в цикле из функции Scala. Однако я не уверен, что с точки зрения производительности было бы хорошо выполнить отдельный запрос на извлечение уникальных дат.