2013-01-15 83 views
0

我有一个使用datetime像Getdate()一堆查询的SP。如何在存储过程中设置日期时间时区

是否有一种方法可以在SP的开头设置全局标志以设置日期时间的时区偏移量?

我需要类似set dateformat dmy的东西,但要抵消时区。

+0

只要时区输入图片,在数据库中使用UTC几乎总是更明智。这不适合你吗? –

+0

@Damien_The_Unbeliever确定时间是UTC,但我需要抵消它的报告目的 – user1939553

+0

你对这个全球旗帜期待什么?它应该对你的数据有什么影响?你能提供一个或两个代码片段详细说明你的要求吗? – Serg

回答

0

没有神奇的全局偏移量变量会改变SQL Server为会话报告的时间。如果你仔细想一想,你会注意到在过程中声明的变量永远不会影响服务器。例如,您需要使用SET命令来完成该操作。

我假设应用程序提供基于TZ数据库或等价物的偏移量,并且您只是想尽可能简单地应用它。你可以做的是用包装一个新函数localedate(),它接受偏移量作为输入并将其应用于getdate()dateadd()

请记住,保存在数据库中的日期没有关联的时区。将它们本地化将是一项更大的任务。