以前我曾尝试过类似问题的可用链接,但它不起作用。所以我在这里张贴我的案例。将varchar转换为时间
我有时间格式:
09:47:11:895799
这被存储为varchar(50)
在我的Microsoft SQL Server数据库。
我想将它转换为时间格式,就像这个link一样。
hh:mm:ss[.nnnnnnn]
你能帮忙吗?
以前我曾尝试过类似问题的可用链接,但它不起作用。所以我在这里张贴我的案例。将varchar转换为时间
我有时间格式:
09:47:11:895799
这被存储为varchar(50)
在我的Microsoft SQL Server数据库。
我想将它转换为时间格式,就像这个link一样。
hh:mm:ss[.nnnnnnn]
你能帮忙吗?
该字符串的格式不正确。它应该是09:47:11.895799
。你需要用.
SELECT CAST(STUFF('09:47:11:895799', 9,1,'.') AS TIME)
是的,':'是问题所在。谢谢! – Zanam
@ user1949158记住要接受这个答案,如果它满足您的需求。欢迎来到Stack Overflow! – BellevueBob
更换最终:
您也可以让你的字符串作为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)
什么版本的sql server? – Taryn
“它不起作用” - 以什么方式?错误消息?结果为空或意外?还有别的吗? –
在投射到“时间”之前,您需要将最后一个':'更改为'.'。 –