2010-12-27 9 views
7

Wie kann ich die gesamte Minute für sql datetime bekommen?datetime zu totalminute in sql

Lasst uns sagen:

select getdate() from table 

Auf diese Weise habe ich alles bekommen, aber ich will nur insgesamt Minute bekommen. Für zB wenn die Zeit 07:10:35 ist, möchte ich 430.

Wie erreicht man das?

Der Wert aus dem Feld ist 01-01-2001 07:10:40 Das Ergebnis, das ich möchte, ist 430 ((7 * 60) +10) nur.

+3

Ihre Frage nicht besonders klar ist. –

Antwort

17

Hier ist ein Beispiel:

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

gibt diesen Fehler zurück (Kann einer lokalen Variablen keinen Standardwert zuweisen.) – william

+0

Oh, Entschuldigung; Ich habe die Tatsache verpasst, dass Sie auf SQL Server 2005 waren. Ich werde es korrigieren. –

+0

Purrrrrrrrrfect – Mukus

1

Diese Abfrage gibt die Anzahl der Minuten nach Mitternacht zurück.

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

Der Code

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

wandelt jede Datumzeit bis Mitternacht. Verwenden Sie das Datingiff mit der "mi" -Funktion, um die Anzahl der Minuten nach Mitternacht zu erhalten.

Verwenden Bücher online für mehr Datum und Uhrzeit Mathe

+0

Der Begriff "Mitternacht" kann hier irreführend sein, da Sie vielleicht meinen, dass "23: 59: 59", aber stattdessen "00: 00: 00" bedeutet. Wenn Sie beispielsweise eine Berechnung basierend auf "Mitternacht" von "Dec 31 2016" durchführen möchten, würden Sie wahrscheinlich 'Dec 31 11: 59: 59' oder vielleicht' Jan 01 2017 00: 00: 00' erwarten, aber wahrscheinlich nicht 'Dec 31 00: 00: 00', was Ihr Code oben Ihnen geben würde. – JoeBrockhaus

+0

Ich denke, dass der Begriff "Mitternacht" in Bezug auf Codierung und 24-Stunden-/Militärzeit ziemlich klar ist. 00:00:00 ist immer der Beginn eines neuen Tages, also wenn Sie "Mitternacht vom 31. Dezember 2016" sagen, sollte es IMMER 2016/12/31 00: 00: 00 bedeuten. Sogar mit einer 12-Stunden-Uhr und AM/PM Bezeichner, 12:00:00 Uhr ist Mitternacht, und es wird als Morgen von AM bezeichnet, es ist nur, dass es bei 12 beginnt, was irreführend ist. –