1

選択した列にいくつかの関数(ユーザー定義/システム)を自動的に適用することは可能ですか?スキーマレベルでバインドしている可能性があります。

私のシナリオでは、レコード保存のタイムスタンプを各テーブルに自動的に保存しgetdate() ます。これらの列のデフォルト値として使用しました。独自のホスティングができるまでは正常に機能していました。しかし、現在、共有ホスティングに移行しており、サーバーが将来どのタイムゾーンに配置されるかわからないため、GETUTCDATE()GMT時刻を取得するために使用しています。

多くの手順/機能がすでに用意されているので、このUTC時間を明示的に現地時間に変換する必要がないものを探しています。

作成Select * from MyTableした関数を使用して、固定のタイムゾーンで時間を指定できるようにします。

とにかく可能かどうか教えてください。

ありがとう。

4

1 に答える 1

0

何をしたいのか明確ではありませんが、SELECTステートメントが求めていることを別のものに置き換える方法はありません。クエリで求めているものが得られます。テーブルを同じ名前のビューに置き換えない限り、それはおそらく最善の方法ではありません。

ビューまたは関数を使用すると、とにかくコードを変更する必要があることを意味します。では、UPDATEすべてのデータを UTC 時間に変換してから、アプリケーション コードで変換しないのはなぜでしょうか? いずれにせよ、SQL Server はクライアントがどのタイム ゾーンにいるかを認識していないため、サーバー側で確実に変換を行うことはできません。クライアントがローカル タイム ゾーンをパラメーターとして、または でサーバーに送信CONTEXT_INFOする場合を除きますが、クライアントでそれを行う方がとにかく簡単であるため、あまり意味がありません。

もちろん、アプリケーションですべてを処理することで、はるかに柔軟で堅牢なソリューションが得られます。

于 2012-06-27T16:02:02.460 に答える