2016-04-28 7 views
6

So kann ich nicht zwei time(hh:mm:ss) in SQL Server subtrahieren.Wie subtrahieren Sie zwei Zeit in SQL Server?

Dies ist meine Aussage:

where 
(CONVERT(TIME(7), [EndWork], 102)) - (CONVERT(TIME(7), [StartWork], 102)) < 
CONVERT(TIME(7), ' 8:30:00', 102) 
+0

Leider unterstützt SQL Server nicht einen Datentyp haben, der ein Zeitintervall * * darstellt. Ich schlage vor, dass Sie "Zeit" nicht verwenden, um solche Werte zu speichern, da es eine * Tageszeit * darstellt und daher für Intervalle nicht sehr nützlich ist (keine negativen Werte erlaubt, keine Werte unterstützt) mehr als 24 Stunden). Also, selbst wenn Sie das Subtrahieren durchgeführt haben, würde ich nicht empfehlen, das mit 'CONVERT (TIME (7), '8:30:00', 102)' zu vergleichen. –

+0

Das hat nichts mit ASP.NET MVC zu tun. –

Antwort

1
DECLARE @END_DATE TIME = '' ,  
    @START_DATE TIME = '' 
    SELECT CONVERT(TIME,DATEADD(MS,DATEDIFF(SS, @START_DATE, @END_DATE)*1000,0),114) 
1

Sie können versuchen, die DATEDIFF Funktion wie folgt zu verwenden: Sie

where DATEDIFF(HH,StartWork, EndWork) 
0

kann einfach wrute Abfrage wie:

SELECT CONVERT(varchar,(EndWork- StartWork), 108) FROM tablename 

Ausgang zurückkehrt Format.

3

Mit der Funktion DATEDIFF erhalten Sie die Differenz von zwei Datum/Uhrzeit in Jahr/Monat/Tag/Stunde/Min/Sek je nach Bedarf.

zB: - DATEDIFF (MINUTE , startdate , enddate) --will die diff in Minuten zurückkehren