簡體   English   中英

如何將nvarchar轉換/計算為int

[英]how to convert/calculate nvarchar to int

我正在嘗試將nvarchar(12)轉換為int,以便可以在我的代碼隱藏中使用它,列中的數據與時間相關(HH:MM),如下所示:

00:02
00:55
01:22
05:16

我想將其轉換為計算的分鍾數:

2
55
82
316

我試圖在下面的sql中使用:

SELECT LTRIM(DATEDIFF(MINUTE, 0, column1)) 
FROM tstable

但它給出以下錯誤:

從字符串轉換日期和/或時間時轉換失敗

以下在SQL Server中有效:

select datediff(minute, 0, '05:16')

所以這也應該工作:

select datediff(minute, 0, column1)

這甚至適用於字符串兩側的空格。

嘗試這個..

SELECT 
CAST(SUBSTRING(your_column,1,CHARINDEX(':',your_column,0)-1)AS INT)*60+
CAST(SUBSTRING(your_column,CHARINDEX(':',your_column,0)+1,LEN(your_column)) AS INT) AS T_MIN
FROM your_table

由於數據類型為nvarchar,因此可以使用STRING方法:

DECLARE @HhMm AS NVARCHAR(12) = '05:16';
SELECT LEFT(@HhMm, 2) * 60 + RIGHT(@HhMm, 2) 

結果為316

具有給定樣本數據的演示

DECLARE @TestTable TABLE (TimeVal NVARCHAR (12));
INSERT INTO @TestTable (TimeVal)  VALUES ('00:02'), ('00:55'), ('01:22'), ('05:16');

SELECT LEFT(TimeVal, 2) * 60 + RIGHT(TimeVal, 2) AS MinutesVal
FROM @TestTable

輸出:

MinutesVal
-----------
2
55
82
316
select LEFT(Time1, 2) * 60 + Right(Time1, 2) Minutes from table6

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM