我已經搜索了這個,但我的字符串似乎與我可以找到的示例格式不同。在SQL Server 2008中字符串到時間
我有時間設置爲nvarchar(50)
和值,如1535
我有兩個這些列,我想比較這兩個發現有多少分鐘的差別。如何將字符串轉換爲一次?
我已經搜索了這個,但我的字符串似乎與我可以找到的示例格式不同。在SQL Server 2008中字符串到時間
我有時間設置爲nvarchar(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
假設所有的值可以轉換爲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'))
從字符串中轉換日期和/或時間時轉換失敗。 – user1295053 2013-03-14 12:09:55
我可以想象的是,因爲你有不適合轉換爲時間的值,因爲這是:2400 – 2013-03-14 12:16:49
這是,謝謝你的幫助。 – user1295053 2013-03-14 13:09:54
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
我假定1535將是3:35 PM,是正確的? – 2013-03-14 11:47:11
是你的值4位數字隨時? – 2013-03-14 11:47:59
是的,這是正確的 – user1295053 2013-03-14 11:48:09