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

サーバーからutcで時刻にGETUTCDATE()を使用できます。次に、クライアントにローカル時刻を追加させることができます。

1

クライアントアプリケーションは、クライアントの場所の変換をSQL Serverの標準日時に適用する必要がありますが、タイムゾーンオフセットを適用してクライアントでGMTにする必要があります。

は、次に(GETUTCDATEと比較)FYI

:GMTは、あなたが;-)

1

英国のならそれは常にローカルサーバー時間を返しますUTCです。データベースサーバーが、ユーザーがどこにいるのかをタイムゾーンごとに知る方法はありません。プロシージャにタイムゾーンオフセットを渡すことができます。