我們有一堆T-SQL腳本依賴於今天的日期和運行時間。如果一個星期沒有運行,我們最終會暫時在前一天設置系統時間,運行腳本,然後將其設置回來。MS SQL 2005:以任何方式臨時將T-SQL腳本的系統日期設置爲不同的日期?
是否有無論如何暫時設置腳本的系統日期而不改變原始腳本,就像執行它或僅用於該會話一樣?
我們有一堆T-SQL腳本依賴於今天的日期和運行時間。如果一個星期沒有運行,我們最終會暫時在前一天設置系統時間,運行腳本,然後將其設置回來。MS SQL 2005:以任何方式臨時將T-SQL腳本的系統日期設置爲不同的日期?
是否有無論如何暫時設置腳本的系統日期而不改變原始腳本,就像執行它或僅用於該會話一樣?
您可以將實際日期存儲在表格/臨時表格中。 檢索或更新該日期,而不是打電話給GetDate()
。
問題是現有腳本調用getdate(),我們無法更改現有腳本。 – 2010-09-13 18:54:57
@Dr Zim - 但是如果您運行腳本調用getdate,然後將該日期插入表中,則可以檢查。如果有一個日期在表中使用日期,而不是getdate。 – JonH 2010-09-13 19:07:05
在不更改現有代碼的情況下,如何獲取原始代碼以便在表格中使用日期? – 2010-09-15 15:06:24
我已經找到別人的答案,我在這裏分享它:「日期與操作系統日期和時間相關,請參閱:http://msdn.microsoft.com/en-us/library/ms188383.aspx」。
你可以參考這個的其他問題Simulate current date on a SQL Server instance?
爲什麼你不能改變現有的腳本?這似乎是唯一明智的解決方案。 – 2010-09-13 20:24:47
我們不控制原始代碼。 – 2010-09-15 15:07:51