sql >> データベース >  >> RDS >> Sqlserver

n層アプリケーションのUTC日時値を設定する場所:プレゼンテーション層、ドメイン、またはデータベース?

    プロシージャ(または挿入の場合は列のデフォルト)で設定することに投票します。区別するためにマイクロ秒の精度が必要でない限り、この情報のすべてをすべてのレイヤーに渡す理由はありません。ユーザーがボタンをクリックしたときと、トランザクションがデータベースでコミットされたとき。これは、分散アプリケーションを使用している場合に特に当てはまります。すべてのWeb /アプリケーションサーバーの同期に依存しますか?クライアント/サーバーアプリのエンドユーザーワークステーションを気にしないでください。異なるデータセンターにサーバーがあり、すべてが異なるタイムゾーンであり、DSTを監視しているサーバーもあれば、監視していないサーバーもあります。DateTime.UtcNow これらの違いのほとんどを消し去るはずですが、それでも理由もなくすべてのデータを渡すことに戻ります。データベースはそれが何時かを知っています。値を保存し、そのすべてのロジックをアプリケーションから除外します。

    (また、UTC時刻を保存している場合、本当にDATETIMEOFFSETが必要ですか。 ?その場合でも、この情報がどのタイムゾーンからのものであるかを手順が知るための何らかの方法が必要です。そうでない場合は、おそらくSMALLDATETIME/DATETIME/DATETIME2を使用する必要があります。 必要な精度によって異なります。)




    1. PHPで正しくフォーマットされていないJSONを修正するにはどうすればよいですか?

    2. テーブル全体で単一の値を確認してください

    3. 日付付きの句間でMySqlを使用する

    4. MySqlの階層データ