我正在尝试使用win2k8将旧的经典asp应用程序迁移到IIS 7.0,如果我能帮助它,我肯定不想更改旧代码.
我在控制面板的区域和语言选项中将日期格式的自定义区域选项中的日期格式设置为dd-MMM-yy.
即使重新启动后,我仍然使用此日期格式获得Conversion_failed_when_converting_datetime_from_character_string错误.
我也在使用SQL Server Express 2005.
你还需要在哪里设置日期格式?它们是否应该从机器设置中拾取?
旧代码做了一些非常愚蠢的事情,但我再次不想改变它然后再次测试它.
旧代码有效地执行了"Insert into MyTable(ThisDate)Values('"&Now()&"')"
生成插入MyTable(ThisDate)值('17/03/2009 3:40:48 pm')
从字符串转换日期时间时,消息241,级别16,状态1,行1转换失败.
它实际上抱怨的是字符串的"pm"部分在机器上显示区域设置,指定不使用它.
这是一个非常烦人的问题,它来自于安装Server 2008,其区域设置与您最终想要使用的区域设置不同.
通常,在将服务器设置为USA并且用户随后将位置设置为UK的情况下会出现此问题.然后,当代码执行时,它返回1/17/2012而不是17/1/2012,是的SQL Server可能会返回错误,如"Conversion_failed_when_converting_datetime_from_character_string".
问题是IUSR帐户有自己的区域设置,这是服务器在执行经典ASP时使用的设置.这是你需要做的修复它...
从"控制面板"中打开"区域和语言"选项.您应该看到"管理"选项卡,单击"复制设置".确保"当前用户"下列出的设置是您要复制的设置,如果它们没有回溯到键盘布局等并设置它们.勾选"欢迎屏幕和系统帐户"框,然后单击"确定".重启.
现在它应该工作.