2つの日時値の差を計算しようとしています。
試しましたが、次のようdatediff(s, begin,end)
にdatediff(ms, begin,end)
差を返したいのですが。seconds,milliseconds
4,14
63,54
2つの日時値の差を計算しようとしています。
試しましたが、次のようdatediff(s, begin,end)
にdatediff(ms, begin,end)
差を返したいのですが。seconds,milliseconds
4,14
63,54
SELECT
DATEDIFF(MILLISECOND, begin, end) / 1000,
DATEDIFF(MILLISECOND, begin, end) % 1000
FROM ...;
どうしてもSQLクエリで文字列として作成する必要がある場合(プレゼンテーション層では作成できませんか?)、次のようにします。
SELECT
CONVERT(VARCHAR(12), DATEDIFF(MILLISECOND, begin, end) / 1000)
+ ','
+ RIGHT('000' + CONVERT(VARCHAR(4), DATEDIFF(MILLISECOND, begin, end) % 1000), 3)
FROM ...;
begin
また、とよりも列名が優れていることを願っていますend
。
実際、マークされた回答は、もともとミリ秒1〜99で間違った結果を生成しました。
例1秒、27ミリ秒:
DATEDIFF % 1000
27を返しますCONVERT
に変換されます'27'
'1' + ',' + '27'
'1.27'
27msではなく270msを意味しますミリ秒を3つのゼロに埋め込むことを忘れないでください。
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)
DATEDIFFは、MySQLでは2つの引数のみを取ります。これは私のために働きます:
TIMESTAMPDIFF(SECOND, NOW(), '2019-09-09 18:52:00')