如何在sql server中验证时间?

时间:2017-02-03 12:38:07

标签: sql-server sql-server-2008

我有价值" 27:30"作为varchar。我想及时投射这个值。 喜欢.... CAST(' 27:30' AS Time)或CONVERT(' 27:30',TIME)。

但它给出了错误。

我该如何转换它?

2 个答案:

答案 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