为什么日期格式变了,提示“从 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)