经典ASP + TSQL:日期时间格式问题

时间:2013-01-08 19:19:43

标签: sql-server datetime odbc date-format datetime-format

我最近将一个经典的ASP网站转移到了一台新服务器上。服务器运行IIS7.5。该站点通过ODBC连接到MS SQL数据库。它的应用程序池在NETWORK SERVICE下运行。

通过这个企业规模的网站分散了datetime条目字段,这些字段在旧服务器上运行良好,但现在它们都有以下错误:

  

[Microsoft] [SQL Server Native Client 10.0] [SQL Server]将varchar数据类型转换为日期时间数据类型会导致超出范围的值。

期待错误的datetime格式。代码中使用的格式始终为yyyy/MM/dd。当我在表单字段中交换月和日位置时,它可以正常工作。即yyyy/dd/MM(这很奇怪)。

Windows控制面板,IIS全球化和NETWORK SERVICE用户的注册表项都设置为en-GB!

我已经测试了代码一直到数据库的调用,输入看起来很好。然后我也复制了那个sql并在我自己的登录下通过SQL Server Management Studio运行它,这也很好。仅当通过网站运行时(在NETWORK SERVICE下并通过ODBC连接),它才会失败。

非常感谢任何帮助。

4 个答案:

答案 0 :(得分:2)

您可以检查并更改NETWORK SERVICE用户登录的默认语言。

在MS SQL Management Studio中,在对象资源管理器中搜索安全性/登录/以及您的帐户名称。在上下文菜单中有属性条目。然后检查默认语言。

答案 1 :(得分:2)

在Web服务器上的ODBC数据源中,将数据源设置为“输出货币编号和日期时使用区域设置”...

所以,

Control Panel\All Control Panel Items\Administrative Tools\Data Sources (ODBC)
Double click your data source
Click Next
Enter a valid db user / password, click next
Select the default DB, then next
Make sure the box as described above is CHECKED, then finish.

答案 2 :(得分:2)

在IIS上,在Web应用程序的应用程序池中 - >高级设置 - >

加载用户个人资料选项设置为 TRUE 。这将强制您的池用户“设置”设置。

答案 3 :(得分:1)

您可以更改IIS 6的AspLCID metabase property或IIS 7+的LCID属性:ASP attributes。这是默认使用的那个。