-
DATE 型は、日付部分はあるが時間部分がない値に使用されます。MySQL は DATE 値を形式で取得して表示します。サポートされている範囲は「YYYY-MM-DD」「1000-01-01」「9999-12-31」です。
-
DATETIME 型は、日付部分と時刻部分の両方を含む値に使用されます。MySQL は DATETIME 形式の値を取得して表示します。サポートされている範囲は次のとおりです: 'YYYY-MM-DD hh:mm:ss' '1000-01-01 00:00:00' '9999-12-31 23:59:59'
-
TIMESTAMP データ型は、日付部分と時刻部分の両方を含む値に使用されます。TIMESTAMP の範囲は「1970-01-01 00:00:01」UTC から「2038-01-19 03:14:07」UTC です。**
MySQL における日時とタイムスタンプの違いと使用法
TIMESTAMP と DATETIME の類似点:
- どちらも、日付と時刻の両方の部分を含む値、つまり YYYY-MM-DD HH:MM:SS[.fraction] 型の日付を表すために使用できます。
TIMESTAMP と DATETIME の違い:
- 両者の保管方法は異なります
TIMESTAMP の場合、クライアントが挿入した時刻を現在のタイムゾーンから UTC (協定世界時) に変換して保存します。クエリを実行すると、クライアントの現在のタイムゾーンに変換されて返されます。
デフォルトでは、各接続の現在のタイムゾーンはサーバーの時間です。タイムゾーンは接続ごとに設定できます。タイムゾーン設定が同じである限り、保存されている同じ値を返すことができます。
また、DATETIME については何も変更せず、基本的にはそのまま入出力します。
- 両者は保存できる時間範囲が異なります
タイムスタンプに保存できる時間範囲は、「1970-01-01 00:00:01.000000」から「2038-01-19 03:14:07.999999」です。
datetime が保存できる時間範囲は、「1000-01-01 00:00:00.000000」から「9999-12-31 23:59:59.999999」です。
参考ドキュメント: https://dev.mysql.com/doc/refman/5.6/en/datetime.html