當在SSMS(SQL Server Management Studio)中的查詢編輯器上執行時,爲什麼GETDATE()
會產生不同的結果,而與Microsoft.Practices.EnterpriseLibrary.Data
的Database.ExecuteNonQuery()
函數執行的結果有什麼不同?爲什麼GETDATE()在SSMS與C#Microsoft.Practices.EnterpriseLibrary.Data上運行時產生不同的結果?
此GETDATE()位於更新表中日期的存儲過程中。
調試由我們開發商SSMS:
EXEC [dbo].[SP_NameOfTheSPWithGetDate]()
= 2016年11月4日下午7時43
正通過運行最終用戶的ASP.net網頁:
Database SampleDB;
SampleDB.ExecuteNonQuery('[dbo].[SP_NameOfTheSPWithGetDate]');
= 2016年11月4日上午11點43
我懷疑的差異可能是因爲+8的GMT的偏移量(我們的服務器在GMT + 8)他們運行相同的確切的SP,但爲什麼從GETDATE()不同的結果?
我們嘗試了各種功能,以獲得當前的日期,如:
GETUTCDATE()
CURRENT_TIMESTAMP
GETDATE()
GETSYSTEMDATE()
但我們仍然有同樣的結果。
這個問題很奇怪,因爲我沒有將任何值傳遞給可能影響GETDATE()函數的SP。
如果您需要更多信息,請隨時詢問以幫助解決此問題。
附加信息(更新):
- 的一個託管ASP.Net網頁服務器與SQL Server數據庫不同。
可能是用戶瀏覽器修正日期時間而不是發生在您的後端? – user1666620
我不這麼認爲,調用SP的人是後端C#。 – jestrange
檢查這個問題,尤其是(非常長)的接受答案,也許它可以擺脫一些光:http://stackoverflow.com/q/2783348/1220550 –