将varchar转换为时间

Zan*_*nam 4 sql sql-server

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

我有时间格式:

09:47:11:895799
Run Code Online (Sandbox Code Playgroud)

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

我正在尝试将其转换为此链接上的时间格式.

hh:mm:ss[.nnnnnnn]
Run Code Online (Sandbox Code Playgroud)

你能帮忙吗?

Mar*_*ith 14

字符串的格式错误.它应该是09:47:11.895799.你需要:用a 替换final.

SELECT CAST(STUFF('09:47:11:895799', 9,1,'.') AS TIME)
Run Code Online (Sandbox Code Playgroud)

  • @ user1949158如果满足您的需求,请记得"接受"这个答案.欢迎来到Stack Overflow! (2认同)

Kaf*_*Kaf 6

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

以下是MSDN链接,了解格式化的更多详细信息.这是SQL Fiddle的工作示例

DECLARE @s varchar(50) = '09:47:11:895799'
SELECT Convert(time, Left(@s,Len(@s)-3), 114)
Run Code Online (Sandbox Code Playgroud)