2009-04-03 1 views

答えて

4

SQLサーバーでそのようなアイテムの日付を処理する方がよいと思います。クライアントが日付を渡すと、クライアントのタイムゾーンが異なる場合や、クライアントの日付が間違っている場合に問題が発生する可能性があります。さらに、コマンドで送信する必要があるアイテムが1つ少なくなります。

1

私の見解では、メソッドが一貫している限り、どこで行っても大きな違いはありません。

パフォーマンスや保守性の点で大きな違いはないと私は疑います。

私の好みは、getdate()を使用してデータベースに作成することですが、ORMを使用したときに問題が発生しました。

0

デフォルト値のGETDATE()を使用してその列を作成しますが、ストアドプロシージャに実際の値を設定します。 すべての列が含まれていないINSERTステートメントを使用することは悪い習慣だと思います。

適切な場合は、トランザクションの開始時に変数@RunDateをGETDATE()に設定し、すべてのCreateDate列とLastChgDate列を@RunDateでマークしたいと思います。私は主キーで日付を使用することはありませんので、少しでも同じであっても問題はありません。私はユーザーが作成/変更したすべてを同時に見る方が良いと感じています。

1

サーバーの現地時間ではなく、時刻をUTCで記述することを検討してください。この方法で、サーバーをあるタイムゾーンから別のタイムゾーンに移動する必要がある場合は、問題はありません。

例として、サーバーをテキサスからカリフォルニアに移しています。メインのプロダクションアプリは、すべての日時の値にUTC時間を使用します。しかし、チケット発行システムはサーバー時間を使用し、チケット発行アプリケーションは、サーバーがテキサスにあると仮定して、ユーザーの現地時間に値を変更します。サーバーをカリフォルニアに移すと、すべてが非常に混乱し、値はすべて2時間で消えます。

関連する問題