2010-04-07 72 views
5

是否有可能欺騙SQL Server在GetDate()上返回不同日期而不實際更改機器日期?
這將是偉大的,因爲我們有一個數據庫與舊數據,我試圖測試一些使用getdate()的查詢。
我可以更改我的機器日期,但這會給其他應用帶來一些其他問題...
任何提示?
謝謝!更改Getdate的輸出

回答

8

按照documentation for getdate()

該值從計算機上 的 操作系統,SQL Server實例是 運行的。

由於它來源於操作系統,我不認爲你可以單獨更改它。

4

您始終可以將GetDate()包裝到自定義函數中,並隨處使用,儘管這不是最佳解決方案。

+0

你怎麼能這樣做呢?即使你創建了一個UDF,它也會是'dbo.GETDATE()' – 2010-04-07 14:06:08

+1

@KM:你會改變函數的實現,所以你可以在任何地方修改它。 @Klausbyskov:如果我沒有弄錯,你不能在UDF中使用像GetDate這樣的非確定性函數。 – JoshBerke 2010-04-07 14:08:30

+0

KM是正確的,只有通過指定dbo.getdate()才能使用它,它不覆蓋/替換內置函數。 – Andrew 2010-04-07 14:10:03

1

沒有,有沒有什麼可以比這樣的事情做其他:

SELECT GETDATE()-7 --get date time 7 days ago 
0
select dateadd(dd, -7 getdate()) 
+0

的主體,以及它將如何有助於使用getdate()運行多個腳本而不更改它們,以便根據過去的數據測試它們? – Artemix 2012-09-24 10:44:47