1. ホーム
  2. mysql

[解決済み] DATE型、TIME型、DATETIME型、TIMESTAMP型の違いとは?

2023-07-31 08:26:17

質問

私は 時間 日付 を追加しました。そこで、私は NOW() 関数を使用しました。しかし、私は何を使用すべきかわかりません。 タイプカラム を使うべきかわかりません。注意すべきは NOW() はこのように時刻と日付の両方を返します。

2014-11-11 12:45:34

ここで解決策として、日付と時刻を区切るセパレータ( 2014-11-1112:45:34 ) を作成し、それらを個別に DATE 型と TIME 型に格納します。または、VARCHAR型を使用して、1つのカラムに両方を格納することもできます。しかし、私はこれらの方法が標準ではないと思います。日付と時間の両方を格納するための標準的なタイプは何ですか?

以下は私のクエリです。(また、私はなぜ NOW() 関数は動作しません)

INSERT INTO table (timedate) VALUES (NOW())

どのように解決するのですか?

日付です。 これは、日付部分はあるが時刻部分がない値に使用されます。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になります。

TIME その値は HH:MM:SS というフォーマット(または HHH:MM:SS の形式を使用します)。TIME 値の範囲は -838:59:59 から 838:59:59 . 時間の部分が非常に大きいのは、TIME型が時刻(24時間未満でなければならない)だけでなく、経過時間や2つのイベントの間の時間間隔(24時間よりはるかに大きい、あるいは負であってもよい)を表すのに使われることがあるためです。