这是我的查询
select cast('2014/07/30 13:57:38.893000' as datetime)
以上查询返回错误消息:
Msg 241,Level 16,State 1,Line 1
从字符串转换日期和/或时间时转换失败。
任何人都可以帮助我吗?
答案 0 :(得分:1)
字符串中指定的精度可以由Datetime2
处理,这就是Datetime2
被添加到SQL Server 2008的原因:
select cast('2014/07/30 13:57:38.893000' as datetime2)
从SQL Server Transact SQL Documentation:
字符长度:
最少19个职位(YYYY-MM-DD hh:mm:ss
)到最多27个职位(YYYY-MM-DD hh:mm:ss.0000000
)
答案 1 :(得分:0)
这对解析器来说太精确了。
试试这样:
select cast('2014/07/30 13:57:38.893' as datetime)
答案 2 :(得分:0)
试试这个:
declare @s varchar(30)
set @s = '2014/07/30 13:57:38.893000'
select cast(LEFT(@s,LEN(@s)-3) as datetime)
<强> SQL FIDDLE DEMO 强>