将varchar转换为时间

时间:2013-01-12 13:09:03

标签: sql sql-server

我之前尝试过类似问题的链接,但它不起作用。所以我在这里发帖子。

我有时间格式:

09:47:11:895799

这在我的Microsoft SQL Server数据库中存储为varchar(50)

我正在尝试将其转换为时间格式,如此link

hh:mm:ss[.nnnnnnn]

你能帮忙吗?

2 个答案:

答案 0 :(得分:14)

字符串的格式错误。它应该是09:47:11.895799。您需要将最终:替换为.

SELECT CAST(STUFF('09:47:11:895799', 9,1,'.') AS TIME)

答案 1 :(得分:6)

您还可以将字符串设为hh:mi:ss:mmm(24小时格式),然后将convert设为时间。这意味着从毫秒中删除最后3位数而不用':'

替换上一个'.'

有关格式化的详细信息,请参阅MSDN link。以下是SQL Fiddle

的工作示例
DECLARE @s varchar(50) = '09:47:11:895799'
SELECT Convert(time, Left(@s,Len(@s)-3), 114)