2017-02-03 60 views
0

我有一個值「27:30」作爲varchar。我想要及時投下這個價值。 like .... CAST('27:30'AS Time)或CONVERT('27:30',TIME)。如何在sql server中驗證時間?

但它給出了錯誤。

我該如何轉換它?

+1

是什麼時候'27:30 「應該是? – Lamak

+1

這意味着27小時30分鐘。 – MohammedAshrafali

+3

是的,但**它幾點**?,你知道,在24小時的一天嗎?,你想要它成爲'03:30'嗎? – Lamak

回答

1

其實我想做的事情「DATEDIFF( MINUTE,'00:00:00',CAST('27:30'AS TIME))「。任何建議?

要轉換HH:MM串分鐘,這是上面的(無效)表達式會做:

SELECT 
    f, 
    CAST(SUBSTRING(f, 1, CHARINDEX(':', f, 1) - 1) AS INT) * 60 + SUBSTRING(f, CHARINDEX(':', f, 1) + 1, 2) 
FROM 
    (VALUES ('00:00'),('15:10'),('27:30'),('3:00'),('1:1')) T(f) 

對於

00:00 0 
15:10 910 
27:30 1650 
3:00 180 
1:1  61 
-3

您的目標欄是日期時間嗎?如果是這樣,你不需要轉換,而只是投,選擇使用這種東西,

選擇投(列名的日期時間(0))作爲從表中的日期時間

+0

'cast'和'convert'實質上是相同的操作。此外,由於日期時間的小時部分的最大值爲23,所以不能將27:30轉換/轉換爲日期時間。 – Pred