我有[YYYYmmdd hhmmss]格式的varchar列标题(Prod_time),我试图将其转换为datetime。我需要能够从特定天数中提取数据,并且我希望能够将varchar转换为datetime来实现此目的。
有没有办法将varchar转换为datetime?没有特殊格式的日期时间,只有数据类型转换。
答案 0 :(得分:3)
你需要在这里强制使用几个字符,以便convert函数知道如何处理它。我们可以很容易地使用STUFF。这适用于提供的字符串格式。
declare @SomeChar varchar(20) = '20170216 100903'
select CONVERT(datetime, STUFF(STUFF(@SomeChar, 12, 0, ':'), 15, 0, ':'))
如果可能的话,您应该考虑将数据类型转换为日期时间。它消除了这种麻烦,也防止了无效的值。