原来的日期类型为nvarchar
里面的数据都是这样的
应该如何将他转换为datetime类型的呢?
好像mssql的不支持0000-00-00这种样子的啊
------解决方案--------------------
- SQL code
--不是不支持,是最早的日期好像是197几年declare @x varchar(10);select @x='0000-00-00'select convert(datetime,case when @x='0000-00-00' then null else @x end);
------解决方案--------------------
SQL SERVER 2005下作的测试
- SQL code
declare @dt varchar(20)set @dt='0000-00-00'select convert(datetime,@dt)/*Msg 242, Level 16, State 3, Line 3从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。*/declare @dt nvarchar(20)set @dt='0000-00-00'select convert(datetime,@dt)/*Msg 8115, Level 16, State 2, Line 3将 expression 转换为数据类型 datetime 时出现算术溢出错误。*/