我有价值" 27:30"作为varchar。我想及时投射这个值。 喜欢.... CAST(' 27:30' AS Time)或CONVERT(' 27:30',TIME)。
但它给出了错误。
我该如何转换它?
答案 0 :(得分:1)
实际上我想做#DEDIFF(分钟,' 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
答案 1 :(得分:-3)
您的目标列是日期时间吗?如果是这样,你不需要转换,只需简单地转换,或者使用
之类的东西从表
中选择强制转换(columnname as datetime(0))作为datetime