今天做房网的急租急售时,遇到一个很意外的问题,在调试asp的时候碰到过datetime类型字段不匹配的错误,就是凡是有关于Now()函数取得的当前时间格式(如:2006-7-5 下午 05:14:26),加入到数据库会出错,感觉非常奇怪,因为这段程序以前测试是没有问题的,而且上传到服务器上也没有问题。我想肯定是这是asp读取系统时区的时候和数据库的读取的不一致而导致的,查看了一下服务器上的时间格式:是2006-7-5 17:17:16这样,两种对照一下,就明白了,前一种的日期格式是中文本土化的,而后一种是国际标准的。所以可能产生这样的错误。
知道了原因,就想办法改正,开始是在区域和语言设置里面把时间设置成国际的24小时制。但重启机器后问题依旧。后来想想会不会是CMOS的问题。于是进入CMOS,发现这台机器的主板时间设置只能以12小时设置,难道问题出在这?我以前用的那台机器就没有出现这种问题,我想应该是这样了。
如果这样,不可能更换主板或机器,于是搜遍MSDN终于查到些相关资料,我总结下写个REG文件 碰到此类问题的只需要注册一下REG将内容添加到注册表就OK了。限2000 SP2 或XP 以上版本,针对IIS5.0
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\InetInfo\Parameters] "SetVarConversionLocaleSetting"=dword:00000002 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\OLEAUT] "VarConversionLocaleSetting"=dword:00000002
复制上面代码保存一个.reg文件双击添加到注册表,一定要重启计算机才生效。 |