İki datetime değeri arasındaki farkı hesaplamaya çalışıyorum. (EdebilirsinizTarih olarak gösterme saniye olarak, milisaniye
4,14
63,54
İki datetime değeri arasındaki farkı hesaplamaya çalışıyorum. (EdebilirsinizTarih olarak gösterme saniye olarak, milisaniye
4,14
63,54
SELECT
DATEDIFF(MILLISECOND, begin, end)/1000,
DATEDIFF(MILLISECOND, begin, end) % 1000
FROM ...;
kesinlikle SQL sorgusunda bir dize olarak oluşturmalıdır Değilse: Ne fark aşağıdaki gibi seconds,milliseconds
olarak döndürülür istiyorum ancak
Ben datediff(s, begin,end)
ve datediff(ms, begin,end)
çalıştı sunumunuz katmanlı bunu), o zaman:?
SELECT
CONVERT(VARCHAR(12), DATEDIFF(MILLISECOND, begin, end)/1000)
+ ','
+ RIGHT('000' + CONVERT(VARCHAR(4), DATEDIFF(MILLISECOND, begin, end) % 1000), 3)
FROM ...;
Ayrıca gerçekten
begin
ve daha iyi sütun adları umut
end
.
Aslında belirgin cevap milisaniye 1 için yanlış sonuçlar üretecek - 99:
Example 1 second, 27 milliseconds:
1) DATEDIFF % 1000 will return 27
2) CONVERT will convert to '27'
3) String concatenation will build '1' + ',' + '27'
4) Result: '1.27' which means 270ms rather than 27ms
üç sıfır yastığın milisaniyeye unutmayın:
DECLARE @start datetime2(7) = '2015-07-03 09:24:33.000'
DECLARE @end datetime2(7) = '2015-07-03 09:24:34.027'
SELECT
CAST (DATEDIFF(SECOND, @start, @end) AS nvarchar(3)) + N'.' +
RIGHT('000' + CAST((DATEDIFF(MILLISECOND, @start, @end) % 1000) AS nvarchar(3)), 3)
İşleri mükemmel teşekkür eder gözlerimi evet Sütun isimleri farklıydı, sadece kafamı karıştırdıysa sorunumu açıklamaktı. –