2015-09-16 21 views
5

Bu süre sürüme sahibim: 00:00:23.323 Bunu sql - milisaniye olarak dönüştürmek istiyorum.SQL, milisaniye dönüşümü

DÜZENLEME: // Bu çalıştı ama çok güzel değil:

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') 

Nasıl çalışır?

Yanıtlarınız için teşekkürler.

+0

şu ana kadar ne denediniz –

+1

Hangi veritabanını kullanıyorsunuz? SEÇ: –

+0

Microsoft SQL databse Bu çalıştı (DATEPART (ss, '12: 13: 14,123 ') * 60 * * 1000 60) SEÇ (DATEPART (n, '12: 13: 14,123') * 60 * 1000) SELECT (DATEPART (s, '12: 13: 14.123 ') * 1000) SELECT DATEPART (ms, '12: 13: 14.123') – Lingo

cevap

14

Kullanım DATEDIFF:

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

Sonuç:

23323 
+0

Çok teşekkür ederim! – Lingo

1

Datepart işlevini kullanabilirsiniz. gibi bu

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

Ve bu hangi dbms ürünü için? (Sorunun hiçbiri belirtilmemiş ve DATEPART ürüne özeldir ...) – jarlh

+0

evet kesinlikle budur :) – Lingo

2

anladım, çok güzel bir yol değildir ama çalışır:

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

t-clausen.dk tarafından [cevap] (http://stackoverflow.com/a/32602860/1175077) çok daha iyi ... – jpw

+1

OP sadece "zaman" süreleri hakkında soruyor biliyorum, ama ne için değer , @ Lingo'nun çözümündeki desen, @ t-clausen.dk'in değerinden> 1 gün daha iyi ölçeklendirir, çünkü "DateDiff", "Int" değerini döndürür; bu, ~ 24 gün değerinde milisaniyede ve ~ 67 yaşlarda üstündür. saniye 'DateDiff_Big' (' BigInt' döndüren), SQL Server 2016'dan önce kullanılamaz. – Tom

İlgili konular