2015-09-16 13 views
5

Ho questa durata: 00:00:23.323 Voglio convertirlo in sql in millisecondi.SQL tempo di conversione in millisecondi

EDIT: // ho provato questo, ma non è molto bello:

SELECT (DATEPART(hh,'12:13:14.123') * 60 * 60 * 1000) 
SELECT (DATEPART(n,'12:13:14.123') * 60 * 1000) 
SELECT (DATEPART(s,'12:13:14.123') * 1000) 
SELECT DATEPART(ms,'12:13:14.123') 

Come funziona?

Grazie per le vostre risposte.

+0

cosa hai provato fino ad ora –

+1

A quale database stai riferendo ?? –

+0

Microsoft SQL databse ho provato questo: SELECT (DATEPART (hh, '12: 13: 14,123 ') * 60 * 60 * 1000) SELECT (DATEPART (n, '12: 13: 14,123') * 60 * 1000) SELECT (DATEPART (s, '12: 13: 14.123 ') * 1000) SELECT DATEPART (ms, '12: 13: 14.123') – Lingo

risposta

14

Uso DATEDIFF:

SELECT DATEDIFF(MILLISECOND, 0, '00:00:23.323') 

Risultato:

23323 
+0

Grazie mille! – Lingo

1

È possibile utilizzare la funzione datepart. come questo

select DATEPART(MILLISECOND,GETDATE())+DATEPART(second,getdate())*1000 
+0

E questo è per quale prodotto dbms? (Nessuno specificato in questione e DATEPART è specifico del prodotto ...) – jarlh

+0

sì, lo è sicuramente :) – Lingo

2

ho capito, non è il modo bello, ma funziona:

SELECT (DATEPART(hh,'00:00:23.323') * 60 * 60 * 1000) + (DATEPART(n,'00:00:23.323') * 60 * 1000) + (DATEPART(s,'00:00:23.323') * 1000) + DATEPART(ms,'00:00:23.323') AS 'DurationInMillis' 
+0

La [risposta] (http://stackoverflow.com/a/32602860/1175077) di t-clausen.dk è molto meglio ... – jpw

+1

So che l'OP chiede solo le durate "di tempo", ma per quello che vale , lo schema nella soluzione di @ Lingo si adatta meglio alle durate> = 1 giorno rispetto a @ t-clausen.dk, poiché "DateDiff" restituisce un "Int", che significa che termina a ~ 24 giorni, vale la pena di millisecondi e ~ 67 anni. di secondi. 'DateDiff_Big' (che restituisce un' BigInt') non è disponibile prima di SQL Server 2016. – Tom

Problemi correlati