2010-04-07 112 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