由CAST()函数在.NET1.1和.NET4.0下处理机制不同所引发的BUG

 .NET 1.1版本下使用日期强制转换函数,比如:
"select cast(ActionDate as char(7)) as ActionDate  from ST_BookAction fetch first row only";

.NET 2.0平台以上,执行上述语句,就会报错SQL0445W 值 已被截断异常。
当改为执行如下语句就可以成功:
"select SUBSTR(CHAR(CURRENT DATE, ISO),1,7) as ActionDate  from ST_BookAction fetch first row only"


判断原因是,CAST强制转换,如果长字段转换为短值,在.NET 1.1版本中不会抛出异常,而.NET 2.0以上就会抛出异常,录入下面的整车“月度统计”界面的查询报错如下
posted @ 2014-03-08 20:14  沙耶  阅读(437)  评论(0编辑  收藏  举报