2010-12-27 11 views
7

Jak uzyskać łączną minutę dla datetime sql?datetime do totalminute w sql

Powiedzmy:

select getdate() from table 

W ten sposób będę się wszystko, ale chcę tylko, aby uzyskać całkowitą minutę. Na przykład , jeśli jest to 07:10:35, chcę 430.

Jak to osiągnąć?

Wartość z pola to 01-01-2001 07:10:40 Wynik, który chcę, to tylko 430 ((7 * 60) +10).

+3

Twoje pytanie nie jest szczególnie wyraźny. –

Odpowiedz

17

Oto próbka:

DECLARE @dt datetime 
SET @dt = '01-01-2001 07:10:20' 
SELECT DATEDIFF(MINUTE, DATEADD(DAY, DATEDIFF(DAY, 0, @dt), 0), @dt) 
+0

zwraca ten błąd (Nie można przypisać wartości domyślnej do zmiennej lokalnej). – william

+0

Och, przepraszam; Brakowało mi tego, że byłeś na serwerze SQL Server 2005. Poprawię go. –

+0

Purrrrrrrrrrfect – Mukus

1

To zapytanie zwróci liczbę minut po północy.

declare @now datetime = getdate() 
declare @midnight datetime = CAST(FLOOR(CAST(@now AS FLOAT)) AS DATETIME) 
select datediff(mi, @midnight,@now) 

Kod

CAST(FLOOR(CAST("yourDateTimeHere" AS FLOAT)) AS DATETIME) 

przekształca dowolnego datetime do północy. Użyj datownika z funkcją "mi", aby uzyskać liczbę minut po północy.

Użyj książki online dla dalszych daty i czasu matematyki

+0

Termin "północ" może być tu mylący, ponieważ może się wydawać, że oznacza "23: 59: 59", ale zamiast tego jest to "00: 00: 00". Jeśli chcesz wykonać obliczenia na podstawie "północy" z dnia 31 grudnia 2016 r., prawdopodobnie spodziewałbyś się "31 grudnia 11: 59: 59", lub może "01 stycznia 2017 00: 00: 00", ale prawdopodobnie nie 'Dec 31 00: 00: 00', który poda ci powyższy kod. – JoeBrockhaus

+0

Myślę, że termin "północ" pod względem kodowania i czasu 24-godzinnego/wojskowego jest całkiem jasny. 00:00:00 jest zawsze początkiem nowego dnia, więc jeśli powiesz "Północ 31 grudnia 2016 r.", Powinno to ZAWSZE oznaczać 2016/12/31 00: 00: 00. Nawet z 12-godzinnym zegarem i AM/Wyznaczacze PM, 12:00:00 jest północą, a rano AM wyznacza rano, po prostu zaczyna się od 12, co wprowadza w błąd. –

Powiązane problemy