Mam tabelę z sygnaturami czasowymi i chcę podzielić ten stół na godzinne interwały, zaczynając od teraz do tyłu o kilka godzin. Nie jestem w stanie uzyskać potrzebnych wyników z funkcją T-SQL DATEDIFF, ponieważ zlicza ona ile razy minutnik przechodzi 12 między dwiema datami - chcę, aby liczba razy minęła dłoń , gdzie jest teraz między znacznikiem czasu a teraz.T-SQL DateDiff - partycja wg "pełnych godzin" zamiast "razy minęły 00 od"
Czy istnieje prosty sposób, aby to zrobić w T-SQL?
Aktualizacja: W odpowiedzi na komentarze, oto kilka przykładowych danych, kwerendy obecnie używam i jestem coraz wyniki, jak również wyniki chcę.
dane próbki:
TimeStamp
*********
2010-07-20 11:00:00.000
2010-07-20 10:44:00.000
2010-07-20 10:14:00.000
2010-07-20 11:00:00.000
2010-07-20 11:40:00.000
2010-07-20 10:16:00.000
2010-07-20 13:00:00.000
2010-07-20 12:58:00.000
Aktualny zapytania:
SELECT TimeStamp, DATEDIFF(HOUR, TimeStamp, CURRENT_TIMESTAMP) AS Diff FROM ...
Wyniki:
TimeStamp Diff ********* **** 2010-07-20 11:00:00.000 2 2010-07-20 10:44:00.000 3 2010-07-20 10:14:00.000 3 2010-07-20 11:00:00.000 2 2010-07-20 11:40:00.000 2 2010-07-20 10:16:00.000 3 2010-07-20 13:00:00.000 0 2010-07-20 12:58:00.000 1
Co wolałbym mieć:
-- The time is now, for the sake of the example, 13:40 TimeStamp Diff ********* **** 2010-07-20 11:00:00.000 3 -- +1 2010-07-20 10:44:00.000 3 2010-07-20 10:14:00.000 4 -- +1 2010-07-20 11:00:00.000 3 -- +1 2010-07-20 11:40:00.000 2 or 3 -- edge case, I don't really care which 2010-07-20 10:16:00.000 4 -- +1 2010-07-20 13:00:00.000 1 -- +1 2010-07-20 12:58:00.000 1
Oznaczyłem wyniki, które zmieniły się na +1
. Także, ja naprawdę nie obchodzi, czy jest to 0 lub 1-indeksowane indeksowane, ale w zasadzie, jeśli jest teraz 13:40 Chcę przęseł czasowych, które się taką samą wartość będzie
12:40-13:40 1 (or 0) 11:40-12:40 2 (or 1) 10:40-11:40 3 (or 2) 09:40-10:40 4 (or 3)
Czy możesz wyjaśnić, że z danych wejściowych i wyjściowych z oczekiwanym zapytanie, które napisałeś? – shahkalpesh
DATEDIFF w minutach, a następnie podział całkowity przez 60? –