2016-04-28 33 views
6

Quindi non so come sottrarre due time(hh:mm:ss) nel server sql.come sottrarre due volte in sql server?

Questa è la mia dichiarazione:

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

Purtroppo, SQL Server non dispone di un tipo di dati che rappresenta un momento * * intervallo. Ti suggerisco caldamente * non * di usare 'time' per memorizzare tali valori, poiché rappresenta un * orario del giorno *, e quindi non è molto utile per gli intervalli (non consente valori negativi, non supporta i valori superiore a 24 ore). Quindi, anche dopo aver eseguito la sottrazione, non ti consiglio di provare a confrontarla con 'CONVERT (TIME (7), '8:30:00', 102)'. –

+0

Questo non ha nulla a che fare con ASP.NET MVC. –

risposta

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

Si può provare a utilizzare la funzione DATEDIFF in questo modo:

where DATEDIFF(HH,StartWork, EndWork) 
0

è possibile interrogare semplicemente wrute come:

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

rendimenti uscita Formato (hh:mm:ss).

3

Utilizzando la funzione DATEDIFF si otterrà la differenza di due date/ora in Anno/Mese/Giorno/Ora/Min/Sec come richiesto.

Ad esempio: - DATEDIFF (MINUTE , startdate , enddate) --sia riportare il diff in minuti