這是現有的應用程序,它具有約1400〜存儲過程,這是很多年前建成。我們使用GetDate()在許多存儲過程中獲取當前日期。SQL服務器GETDATE函數返回一個將來的日期
現在我們要測試與「老化」場景此應用程序。我們被DBA告知,GetDate()函數從操作系統派生日期。所以如果我們需要getdate()來返回將來的日期,我們需要更改OS日期。數據中心人員不會讓我們更改操作系統日期。
一個顯而易見的解決方案是創建一個單獨的GetApplicationDate()函數返回什麼都日期,我們希望和審查所有的存儲過程,並用這個新的自定義功能進行更新。
我想避免更改〜1400的存儲過程,並覆蓋GETDATE SQL Server提供()函數。那可能嗎?
感謝, 加亞
你的DBA是正確的。找人重寫「數據中心人員」並節省您的工作時間。但是,請記住,OS日期是當地的 - 所以,如果你是在西部成本(或印度),或在以往任何時候,未來的時間可能是一個本地化的改變一樣簡單。 – Hogan
NO。 GetDate返回當前系統日期時間。它是在SQL Server中的本地代碼,所以你不能改變它。對於這種類型的測試,你將不得不改變當前的系統時間。 –
同意以前的2條評論。如果您不需要手術,並且可以用您的自定義功能替換每次發生GETDATE(),那麼可以使用複製/替換工具快速完成,或者更新到系統表。 –