我已经对此进行了搜索,但我的字符串似乎与我能找到的示例格式不同。
我将时间设置为 anvarchar(50)
和值,例如1535
我有两个这样的列,我想比较两者以找出有多少分钟差异。如何将字符串转换为时间?
我已经对此进行了搜索,但我的字符串似乎与我能找到的示例格式不同。
我将时间设置为 anvarchar(50)
和值,例如1535
我有两个这样的列,我想比较两者以找出有多少分钟差异。如何将字符串转换为时间?
单程;
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
If you need the difference in minutes
,这是without converting
你价值观的一种方法to Datetime
。
假设 allnvarchar 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
假设您的所有值都可以转换为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'))