当前位置: 代码迷 >> Sql Server >> 关于转换日期格式时碰到的奇葩有关问题
  详细解决方案

关于转换日期格式时碰到的奇葩有关问题

热度:12   发布时间:2016-04-24 09:28:07.0
关于转换日期格式时碰到的奇葩问题
     在SQL中有一个字段:
             
     现在需要将其转换为datetime,SQL语句如下:
             
     显示错误信息为:
           消息 241,级别 16,状态 1,第 1 行
           从字符串转换日期和/或时间时,转换失败。
           消息 242,级别 16,状态 3,第 1 行
           从 varchar 数据类型到 datetime 数据类型的转换产生一个超出范围的值。

     但是当SQL语句修改为下图时又可以正常转换了:
         

       

     实在想不通为什么会出现这种情况,用convert转换也是同样的结果;之后我尝试着先用isnull或convert把该字段改为'1990-01-01',然后再行转换成日期格式也不行。

    PS:由于数据量较大所以不能修改字段类型,所以必须经过转换。

    望各位大神支招,小弟拜谢。
    
            
------解决思路----------------------

------解决思路----------------------
因为你的数据中,有不能转化为DATETIME的数据

而TOP 1的查询刚好不包含此类数据,所以TOP 1 的时候可以

你可以新加一列时间列,用UPDATE TB SET ...  WHERE ISDATE(时间列)=1把能转换的先转换了

然后,再看看,不能转的,是要统一转成什么,或看情况手动更新

  相关解决方案