我最近將一個經典的ASP網站轉移到新的服務器上。服務器運行IIS7.5。該站點通過ODBC連接到MS SQL數據庫。它的應用程序池正在運行在NETWORK SERVICE
之下。經典ASP + TSQL:日期時間格式問題
通過這家企業規模的網站散佈是已經在舊服務器上運行良好datetime
輸入字段,但現在他們都具有以下錯誤:
[Microsoft][SQL Server Native Client 10.0][SQL Server]The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.
它期待錯誤datetime
格式。代碼中使用的格式始終爲yyyy/MM/dd
。當我在表單字段中交換月份和日期頭寸時,它可以工作。即yyyy/dd/MM
(這很奇怪)。
Windows控制面板,IIS全球化和NETWORK SERVICE
用戶的註冊表鍵都設置爲en-GB!
我已經測試了代碼,一直到調用數據庫,輸入看起來不錯。然後我也複製了這個sql,並在我自己的登錄下通過SQL Server Management Studio運行它,這也很好。只有在通過網站(通過NETWORK SERVICE
並通過ODBC連接)運行時纔會失敗。
任何幫助,非常感謝。
停止在字符串中傳遞日期時間值。我確信即使使用ODBC,也有一個可以適當轉換日期時間值的轉換層。如果*不是*,則使用明確的格式。 (對於日期,它是'YYYYMMDD'沒有分隔符) –
http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/16/bad-habits-to-kick-mishandling-date-range-queries.aspx –
@Damien_The_Unbeliever:是的,我完全同意。不幸的是,一旦所有的不良習慣都已經落實到位,我就接管了這個完全完成的項目。因爲它以前工作過,所以我更願意在某處更改配置以更好地複製服務器,而不是花費數天時間在多個位置查找和更改代碼。 – hofnarwillie