2009-04-22 60 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

總是返回本地服務器時間。數據庫服務器無法知道用戶在哪個時區是明智的。您可以將時區偏移傳遞給過程。