Можно использовать свежую справку POV :)
Нужно показывать поездки с полуночи до 4 утра. StartTime
столбец имеет тип DATETIME
. Я уже пробовал
CAST(StartTime AS TIME) BETWEEN CAST('00:00:00' AS TIME) AND....
, но он не показал правильных результатов, и поэтому я сделал это IIF
, но все же, хотя StartTime
НЕ между полночью и 4 утра, результаты показывают 1. Я что-то пропустил? Спасибо за помощь!
SELECT
id
, StartTime
, DATEADD(d, 0, DATEDIFF(d, 0, StartTime)) AS Midnight
, DATEADD(hh, +4 , DATEDIFF(d, 0, StartTime)) AS FourAM
, IIF((StartTime BETWEEN DATEADD(d, 0, DATEDIFF(d, 0, StartTime))
AND DATEADD(hh, +4 , DATEDIFF(d, 0, StartTime))), 1, 0) _Between_Check
FROM
FUN.Trip
Результаты:
ID | StartDate | Midnight | FourAM | Between_Check
------------+-----------------------+-------------------------+-------------------------+--------------
-2135024021 | 19-10-02 00:04:01.000 | 2019-10-02 00:00:00.000 | 2019-10-02 00:04:00.000 | 1
-2135024228 | 19-10-05 00:04:30.000 | 2019-10-05 00:00:00.000 | 2019-10-05 00:04:00.000 | 1
Выше приведен результат, который я получаю. Столбец Between_Check должен показывать 0, так как StartDate - это минута после 4 AM * 10101
Вот что я должен получить
Результаты:
ID | StartDate | Midnight | FourAM | Between_Check
------------+-----------------------+-------------------------+-------------------------+--------------
-2135024021 | 19-10-02 00:04:01.000 | 2019-10-02 00:00:00.000 | 2019-10-02 00:04:00.000 | 0
-2135024228 | 19-10-05 00:02:30.000 | 2019-10-05 00:00:00.000 | 2019-10-05 00:04:00.000 | 0