繁体   English   中英

在SQL Server中将VARCHAR转换为日期时间

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM