[英]converting a varchar to datetime in sql server
我有一个varchar 20130909132512
,我想将其转换成一个日期2013-09-09
尝试时我不断收到错误消息
select convert(datetime,'20130909132512',105)
而且我试图避免使用
select convert(datetime,SUBSTRING('20130909132512',0,8),105)
如果可能的话。 关于如何执行此操作的任何想法?
您可以使用STUFF将varchar转换为20130909 13:25:12
Declare @a Varchar(20)
Select @a = '20130909132512'
select convert(datetime,
STUFF(STUFF(STUFF(@a,13,0,':'),11,0,':'),9,0,' ')
,105)
无论您使用bummi的STUFF
方法还是继续使用SUBSTRING
,无论您做什么,都必须预先格式化字符串。
在这种情况下, SUBSTRING
执行速度会更快
SELECT CONVERT(date, SUBSTRING('20130909132512', 0, 9), 20)
但是,如果您希望日期格式为2013-09-09,则需要使用“ 20”作为转换样式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.