我有一个列abc varchar(100),其数据类似于2011-09-26 16:36:57.810000
我想将此列转换为DATETIME …
但做一个
Convert(DATETIME,abc,120)
给出了这个错误:
Conversion Failed when converting date and/or time from character string.
任何人都可以帮我将我的varchar格式转换为sql Server 2008中的datetime吗?
提前致谢
解决方法
您可以使用样式121但是您只能使用3位数毫秒(即yyyy-mm-dd hh:mi:ss.mmm(24h))格式.
declare @abc varchar(100)='2011-09-26 16:36:57.810' select convert(datetime,@abc,121)
因此,您可以通过将varchar字段限制为23个字符进行排序,然后再转换为:
declare @abc varchar(100)='2011-09-26 16:36:57.810000' select convert(datetime,convert(varchar(23),@abc),121)
select convert(datetime,left(@abc,23),121)
尽量避免将日期存储为字符串.