Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 经典ASP+;TSQL:日期时间格式问题_Sql Server_Datetime_Odbc_Date Format_Datetime Format - Fatal编程技术网

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

Sql server 经典ASP+;TSQL:日期时间格式问题,sql-server,datetime,odbc,date-format,datetime-format,Sql Server,Datetime,Odbc,Date Format,Datetime Format,我最近把一个经典的ASP网站转移到了一个新的服务器上。服务器运行IIS7.5。该站点通过ODBC连接到MS SQL数据库。它的应用程序池正在网络服务下运行 这个企业级网站上分散着datetime输入字段,这些字段在旧服务器上运行良好,但现在它们都有以下错误: [Microsoft][SQL Server Native Client 10.0][SQL Server]将varchar数据类型转换为datetime数据类型导致值超出范围 它应为错误的datetime格式。代码中使用的格式始终为yyy

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

这个企业级网站上分散着
datetime
输入字段,这些字段在旧服务器上运行良好,但现在它们都有以下错误:

[Microsoft][SQL Server Native Client 10.0][SQL Server]将varchar数据类型转换为datetime数据类型导致值超出范围

它应为错误的
datetime
格式。代码中使用的格式始终为
yyyy/MM/dd
。当我交换表单字段中的月和日位置时,它就起作用了。也就是说,
yyyy/dd/MM
(这很奇怪)

windows控制面板、IIS全球化和
网络服务
用户的注册表项都设置为en GB

我一直测试代码,直到调用数据库,输入看起来不错。然后,我还复制了该sql,并在我自己的登录名下通过SQLServerManagementStudio运行了它,这也很好。只有通过网站(在
网络服务下
并通过ODBC连接)运行时,才会失败


非常感谢您的帮助。

您可以检查并更改网络服务用户登录的默认语言


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

您可以更改IIS 6的,或IIS 7+的LCID属性:。这是默认情况下使用的数据源。

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

所以


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


将加载用户配置文件选项设置为TRUE。这将强制池用户的设置为“接受”

停止将日期时间值作为字符串传递。我确信即使使用ODBC,也有一个转换层可以适当地转换日期时间值。如果没有,则使用明确的格式。(日期是没有分隔符的
YYYYMMDD
)@Damien_异教徒:是的,我完全同意。不幸的是,一旦所有的坏习惯都已经养成,我就接管了这个完全完成的项目。而且,由于它以前可以工作,我更愿意在某个地方进行配置更改,以便更好地复制服务器,而不是花上几天的时间在多个地方查找和更改代码?我没有看到任何与日期格式或全球化相关的内容。谢谢Simon,我将其更改为2057(en GB),然后更改为9(en),但不幸的是仍然没有结果!:(嗯……您是否尝试过此处描述的连接字符串的“区域”设置:不,我没有,我会尝试一下,但我不喜欢这样做,因为连接字符串没有从旧服务器更改。我不确定文章中如何更改连接字符串。抱歉,经典的asp noob(.net是我的游戏)。当前连接是这样创建的:
SQLConn=“011-002 sheiba”
Dim conn
SET conn=Server.CreateObject(“ADODB.connection”)
conn.open SQLConn
谢谢,但它已经在英式英语中(使用dd/MM/yyyy格式).但我经过yyyy/MM/dd.@hofnarwillie-在英式英语中,SQL Server将4/2/2解释为
yyyy/dd/MM
,尽管在英国没有人会认识到这一点format@Damien_The_Unbeliever啊,好的。谢谢。不过还是没修好。:)
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.