当前位置: 代码迷 >> Sql Server >> CAST(substring(sfzh,7,8) AS SMALLDATETIME)变换出错了
  详细解决方案

CAST(substring(sfzh,7,8) AS SMALLDATETIME)变换出错了

热度:419   发布时间:2016-04-27 10:42:40.0
CAST(substring(sfzh,7,8) AS SMALLDATETIME)转换出错了。
哪个大哥可以告诉我怎么写才能正确么

------解决方案--------------------
报什么错啊 可能截取的内容是非法的日期吧
------解决方案--------------------
是不是这个字段有些数据,你这么取了,但取出来的数据无法转换成SMALLDATETIME类型。
建议你先检查下sfzh列的数据。
------解决方案--------------------
SQL code
select CAST(substring('sfzh',7,8) AS SMALLDATETIME)
------解决方案--------------------
如果不是数据问题那么就是你substring里面取位的问题,你可以像我那样先调用substring看看是否正确再转换
SQL code
 WITH test (sfzh)  AS   (SELECT 'abcdef20121015')   SELECT substring(sfzh,7,8),CAST(substring(sfzh,7,8) AS SMALLDATETIME)   FROM test   /*                  -------------- ----------------------- 20121015       2012-10-15 00:00:00  (1 行受影响)  */
  相关解决方案