Чтобы получить конкретную точку во времени я склонен использовать шаблон DATEADD
/DATEDIFF
. Это может выглядеть немного громоздким, но работает очень хорошо, и как только вы привыкли видеть его, он становится более удобным для чтения:
SELECT * --TODO - Pick columns
FROM Activities
WHERE OccurredAt BETWEEN
DATEADD(day,DATEDIFF(day,'20010101',GETDATE()),'2001-01-01T08:00:00') AND
DATEADD(day,DATEDIFF(day,'20010101',GETDATE()),'2001-01-01T10:00:00')
Здесь я использую его дважды. Он просто полагается на связь между двумя константами дат, которые вы выбираете, потому что они демонстрируют функции, которые вы хотите. Так вот:
DATEADD(day,DATEDIFF(day,'20010101',GETDATE()),'2001-01-01T08:00:00')
Я вычисления числа (целые) дней, прошедших в период с 1 января 2001 и сейчас. Затем я добавляю, что (целое) количество дней на 08:00 1 января 2001 года, что будет, по логике, производить 08:00 сегодня.
Вы пытались использовать МЕЖДУ? – IndoKnight
Его больше вопрос о том, как использовать функцию Getdate() 08:00:00 и getdate() 10:00:00. Мне нужно, чтобы получить текущую дату и только вернуть данные между этими двумя моментами. – GPH