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

MySqlに日付/時刻を保存するのに最適な方法は?

    1. 通常、どちらも実行しないでください。データベース層のデータ型は、それ自体で(可能な限り)意味があり、アプリケーションに依存して解釈されないようにする必要があります。 @JimDeLaHuntが言うように 、これにより、データベースは必要に応じてSQLからそれらを簡単に操作/解釈できます(また、将来、別のアプリケーションコードベースから同じデータに簡単にアクセスできるようになります)。

      MySQLには5つの時間タイプ があります 、日付と時刻の両方を保存するのは2つだけです:DATETIME およびTIMESTAMP

      他の人がほのめかしているように、違いはタイムゾーンを保存するかどうかにあります-それを見るのはかなり紛らわしい方法だと思いますが:

      • TIMESTAMP セッションの time_zoneを使用します 入力をUTCタイムスタンプに変換し、再び出力に戻す変数。正確な瞬間を指定するのに便利です。

      • DATETIME カレンダーや時計の写真を撮るのと同じように、タイムゾーンに関係なく日付と時刻を保存するだけです。同じ現地時間でグローバルに発生するイベントを指定するのに便利です。

    2. 他の列を宣言するのと同じように、列名の後に関連するデータ型を指定します。

      TIMESTAMPに注意してください 自動更新 などの追加機能があります 、必要に応じて、列宣言で無効にすることができます。

    3. 上記の時間タイプのいずれかを使用すると、これらすべてを実行できます(日付関数 要求に応じ)。 TIMESTAMPのデフォルト出力 およびDATETIME typesは、'YYYY-MM-DD HH:MM:SS'の文字列です。 フォーマット。

      特に、2つの値を比較することによる「経過時間」は、たとえばMySQLの TIMEDIFF() 機能:

      SELECT TIMEDIFF(end, start) AS elapsed
      FROM   my_table
      WHERE  ...
      


    1. sequelizeを使用してローカルノードアプリからherokupostgresqlデータベースに接続できません

    2. MySQLのストアドプロシージャから複数の行を取得するにはどうすればよいですか?

    3. $ wpdb-> prepareでlikeステートメントを使用して、ワイルドカード文字が存在する場所にハッシュを表示する

    4. グループごとの最大値