時間データタイプの要約が次に紹介されます。追加情報については 項10.3. 「日付と時刻タイプ」 を参照してください。必要とする記憶容量は 項10.5. 「データタイプが必要とする記憶容量」 に紹介されています。
DATETIME
と DATE
範囲の説明では、「サポートする」というのは、以前の値が有効であったとしても、その保障は無いという意味になります。
SUM()
と AVG()
総計関数は、一時的な値とは機能しません。(それらは値を数字に変換するので、最初の数字ではない文字から後ろの部分がなくなってしまいます。)この問題を防ぐ為には、数字単位に変換し総計作業を行い、そしてもう一度一時的な値に変換し直せば良いです。例:
SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(time_col
))) FROMtbl_name
; SELECT FROM_DAYS(SUM(TO_DAYS(date_col
))) FROMtbl_name
;
日付です。サポートされている範囲は
'1000-01-01'
から
'9999-12-31'
です。MySQL
は、DATE
値を
'YYYY-MM-DD'
フォーマットで表示しますが、文字列と数字のどちらで
DATE
カラムに値を指示してもよいです。
日付と時刻の組み合わせです。サポートされている範囲は
'1000-01-01 00:00:00'
から
'9999-12-31 23:59:59'
です。MySQL は、 DATETIME
値を
'YYYY-MM-DD HH:MM:SS'
フォーマットで表示しますが、文字列と数字のどちらで
DATETIME
カラムに値を指示してもよいです。
タイムスタンプです。範囲は
'1970-01-01 00:00:01'
UTCから
2037
年の途中までです。TIMESTAMP
値は ('1970-01-01 00:00:00'
UTC)からの秒数として格納されます。TIMESTAMP
は、'1970-01-01 00:00:00'
値を表す事はできません。なぜならば、これはその時から0秒である事に相当し、0という値は
'0000-00-00 00:00:00'
つまり、「ゼロ」
TIMESTAMP
値
を表すのに用いられるからです。
TIMESTAMP
カラムは
INSERT
または
UPDATE
操作の日付と時刻を記録するのに役立ちます。自分で値を指定しない限り、テーブルの
TIMESTAMP
カラムはデフォルトで一番最近の操作の日付と時刻に自動的にセットされます。NULL
値を指定する事で、現在の日付と時刻を
TIMESTAMP
カラムに設定する事もできます。自動初期設定と更新の特徴については
項10.3.1.1. 「TIMESTAMP
MySQL 4.1での性質」
の中で説明されています。
ディスプレイ幅が19文字に固定されている
'YYYY-MM-DD HH:MM:SS'
フォーマットの中では、TIMESTAMP
値は文字列として戻されます。数字の値を得る為には
+0
をタイムスタンプカラムに加える必要があります。
注:MySQL
4.1以前で使用されていた
TIMESTAMP
フォーマットはMySQL
5.1
の中ではサポートされていません。古いフォーマットに関する情報については、
MySQL 3.23, 4.0, 4.1
リファレンスマニュアル
を参照してください。
時刻です。範囲は
'-838:59:59'
から
'838:59:59'
です。MySQL
は、TIME
値を
'HH:MM:SS'
フォーマットで表示しますが、文字列と数字のどちらで
TIME
カラムに値を指示してもよいです。
2桁、または4桁のフォーマットでの年です。デフォルトは4桁のフォーマットです。4桁のフォーマットでは、許容値は
1901
から
2155
、そして 0000
です。2桁のフォーマットでは、許容値は1970年から2069年を表す、70
から 69
です。MySQLは
YEAR
の値を YYYY
フォーマットで表示しますが、YEAR
カラムには文字列と数字のどちらを使って値を指定する事もできます。