1

私はこれを検索しましたが、私の文字列は私が見つけることができる例とは異なる形式になっているようです。

として設定された時間nvarchar(50)と次のような値があります1535

これらの列が2つあり、2つを比較して、何分の違いがあるかを調べたいと思います。文字列を時間に変換するにはどうすればよいですか?

4

3 に答える 3

2

一方通行;

declare @t1 nvarchar(4) = '1535'
declare @t2 nvarchar(4) = '1700'

select 
    datediff(minute, 
             cast(stuff(@t1, 3, 0, ':') as time),
             cast(stuff(@t2, 3, 0, ':') as time))

>>85
于 2013-03-14T11:55:19.860 に答える
1

すべての値を次のように変換できると仮定しますTime

DECLARE @val1 as NVARCHAR(50);
DECLARE @val2 as NVARCHAR(50);
SET @val1 = '1535'; SET @val2 = '1655';

SELECT DATEDIFF(minute,convert(time,LEFT(@val1,2)+':'+RIGHT(@val1, 2)+':00'), CONVERT(time,LEFT(@val2,2)+':'+RIGHT(@val2, 2)+':00'))
于 2013-03-14T11:56:02.783 に答える
1

If you need the difference in minutes、これはwithout convertingあなたの価値観の方法ですto Datetime

nvarchar values are convertible to int すべてとそれらがにあると仮定すると24h format、の違い c2-c1 in Minutes

ここでフィドルデモ

select ((c2*1-c1*1)/100)*60 + (c2*1-c1*1)%100 inMinutes
from t
于 2013-03-14T12:25:10.793 に答える