2009-04-22 39 views
0

我有一个过程,默认今天的日期如果没有参数传入它。SQL Server 2005日期本地化

CREATE Procedure GetDirectoryRenewalReminders  
(@DateToday datetime = Null) 
As  
If @DateToday Is Null 
Begin 
Set @DateToday = GetDate() 
End 
... 
Go 

我怎样才能确保GETDATE()值将默认为当前英国时间在英国的应用程序调用时,和澳大利亚的时间在澳大利亚的applciation调用时?

回答

3

您可以使用GETUTCDATE()到utc中的时间从服务器。然后你可以让客户端添加当地时间。

1

客户端应用程序应将客户端位置的翻译应用于SQL Server的标准日期时间...但您必须应用时区偏移量以使其在客户端中成为GMT。

然后比较反对GETUTCDATE()

FYI:GMT是UTC,如果你是英国人;-)

1

总是返回本地服务器时间。数据库服务器无法知道用户在哪个时区是明智的。您可以将时区偏移传递给过程。