首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

CAST(substring(sfzh,7,8) AS SMALLDATETIME)转换出错了。该怎么解决

2013-01-25 
CAST(substring(sfzh,7,8) AS SMALLDATETIME)转换出错了。哪个大哥可以告诉我怎么写才能正确么[解决办法]报

CAST(substring(sfzh,7,8) AS SMALLDATETIME)转换出错了。
哪个大哥可以告诉我怎么写才能正确么
[解决办法]
报什么错啊 可能截取的内容是非法的日期吧
[解决办法]
是不是这个字段有些数据,你这么取了,但取出来的数据无法转换成SMALLDATETIME类型。
建议你先检查下sfzh列的数据。
[解决办法]

select CAST(substring('sfzh',7,8) AS SMALLDATETIME)

[解决办法]
如果不是数据问题那么就是你substring里面取位的问题,你可以像我那样先调用substring看看是否正确再转换
 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 行受影响)
  */

热点排行