今天在执行以下sql时提示了
从字符串向 datetime 转换时失败的错误
declare @datetime datetime
set @datetime='2011-8-6'
select 'select * from table1 where createdate >'''+@datetime+''''
仔细检查后发现是因为未将@datetime转化为varchar所至,在默认情况下,datetime的优先级大于varchar,在未指定转换类型的情况下,系统会尝试将'select * from table1 where createdate >'转换为datetime,所以引发了上面的错误。
正确写法如下:
declare @datetime datetime
set @datetime='2011-8-6'
select 'select * from table1 where createdate >'''+convert(varchar(100),@datetime,23)+''''
日期转化格式请参见本站:
CONVERT转化函数的用法ble Sale_OrderList drop constraint IX_Sale_BOM_GMIDandDate