日期:2014-05-18  浏览次数:20464 次

为什么日期格式变了,提示“从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界”
大家好:
        现在学习一个运行,我用profiler跟踪,同样的程序,同样的数据库,做同样的操作,一台服务器上执行跟踪出来的语句是:
        update   t_rpcontract   set   fcheckdate= '2007-07-31 '
而在另一台却变成了:
        update   t_rpcontract   set   fcheckdate= '31/7/2007 '
此时提示:
服务器:   消息   242,级别   16,状态   3,行   1
从   char   数据类型到   datetime   数据类型的转换导致   datetime   值越界。
语句已终止。
两台服务器系统均是2003,区域日期格式是:yyyy-mm-dd
不知道是什么原因影响了程序的输出日期格式,请大家指点迷津!万分感激!

------解决方案--------------------
--执行

set dateformat ymd

------解决方案--------------------
sql server里面的问题,在使用日期的转换过程中,我们都把它适用convert或cast转换成了120或121处理了!
------解决方案--------------------
用convert 或者cast 转换后再更新!

update t_rpcontract set fcheckdate= cast( '2007-07-31 ' as datetime)
------解决方案--------------------
= convert(Datetime, '2007-07-31 ', 120)