日付型と時刻型

広告

ここでは日付型と時刻型について確認していきます。次のデータ型が用意されています。

DATE
  フォーマット : 'YYYY-MM-DD'
  範囲 : '1000-01-01' から '9999-12-31'

DATETIME
  フォーマット : 'YYYY-MM-DD HH:MM:SS'
  範囲 : '1000-01-01 00:00:00' から '9999-12-31 23:59:59'

TIMESTAMP
  フォーマット : 'YYYY-MM-DD HH:MM:SS'
  範囲 : '1970-01-01 00:00:01' から '2037-12-31 23:59:59'

TIME
  フォーマット : 'HH:MM:SS'
  範囲 : '-838:59:59' から '838:59:59'

YEAR[(2|4)]
  フォーマット : YYYY
  範囲 : 1901 から 2155、そして 0000 (4桁の場合)
  範囲 : 70  から 69 (2桁の場合、70は1970を表し69は2069を表す)
  デフォルトは4桁

こららのデータ型は日付と時刻を格納するために使われます。

DATE型

日付を文字列として指定する場合、'YYYY-MM-DD'が基本となるフォーマットですが、次のような指定方法も許可されています。

フォーマット              入力例
-----------------------  -------------------------
'YYYY-MM-DD'             '2009-09-07'
'YY-MM-DD'               '09-09-07'
'YYYYMMDD'               '20090907'
'YYMMDD'                 '090907'

また区切り文字は'-'だけではなく次のような文字を使うこともできます。

フォーマット              入力例
-----------------------  -------------------------
'YYYY-MM-DD'             '2009-09-07'
'YYYY.MM.DD'             '2009.09.07'
'YYYY/MM/DD'             '2009/09/07'
'YYYY@MM@DD'             '2009@09@07'

日付に区切り文字が使われている場合、1月から9月、そして1日から9日については2桁で表す必要はありません。

フォーマット              入力例
-----------------------  -------------------------
'YYYY-M-D'               '2009-9-7'

日付は数値として指定することもできます。

フォーマット              入力例
-----------------------  -------------------------
YYYYMMDD                 20090907
YYMMDD                   090907

なお年が2桁で指定された場合は次のルールによって4桁の年に変換します。

70-99 の範囲の年の値は 1970-1999
00-69 の範囲の年の値は 2000-2069

ではDATE型のカラムを持つテーブルを作成します。

p4-1

様々なフォーマットでデータを追加してみます。

p4-2

追加したデータを取得すると次のように表示されます。

p4-3

TIME型

時刻を文字列として指定する場合、'HH:MM:SS'が基本となるフォーマットですが、次のような指定方法も許可されています。

フォーマット              入力例
-----------------------  -------------------------
'HH:MM:SS'               '15:25:07'
'HH:MM'                  '15:25'
'HHMMSS'                 '152507'
'MMSS'                   '2507'
'SS'                     '07'
'D HH:MM:SS'             '2 15:25:07'
'D HH:MM'                '2 15:25'
'D HH''                  '2 15'

'MMSS'で指定した場合は分と秒になり'SS'で指定した場合は秒となりますが、'HH:MM'のように区切り文字がある場合は時と分になりますので注意して下さい。

'D'は日にちを表します。'D'付きの場合はD×24が時に加算されて表示されます。

時間に区切り文字が使われている場合、0秒から9秒、0分から9分、0時から9時については2桁で表す必要はありません。

フォーマット              入力例
-----------------------  -------------------------
'HH:M:S'                 '15:3:7'

時間は数値として指定することもできます。

フォーマット              入力例
-----------------------  -------------------------
HHMMSS                   152507
MMSS                     2507
SS                       07

ではTIME型のカラムを持つテーブルを作成します。

p4-4

では様々なフォーマットでデータを追加してみます。

p4-5

追加したデータを取得すると次のように表示されます。

p4-6

DATETIME型 / TIMESTAMP型

日付と時刻を文字列として指定する場合、'YYYY-MM-DD HH:MM:SS'が基本となるフォーマットですが、次のような指定方法も許可されています。

フォーマット              入力例
-----------------------  -------------------------
'YYYY-MM-DD HH:MM:SS'    '2009-10-04 15:25:07'
'YY-MM-DD HH:MM:SS'      '09-10-04 15:25:07'
'YYYYMMDDHHMMSS'         '20091004152507'
'YYMMDDHHMMSS'           '091004152507'

また区切り文字は'-'だけではなく次のような文字を使うこともできます。

フォーマット              入力例
-----------------------  -------------------------
'YYYY-MM-DD HH:MM:SS'    '2009-10-04 15:25:07'
'YYYY.MM.DD HH+MM+SS'    '2009.10.04 15+25+07'
'YYYY/MM/DD HH*MM*SS'    '2009/10/04 15*25*07'
'YYYY@MM@DD HH^MM^SS'    '2009@10@04 15^25^07'

日付や時刻に区切り文字が使われている場合、1桁の数値を2桁で表す必要はありません。

フォーマット              入力例
-----------------------  -------------------------
'YYYY-M-D H:M:S'         '2009-3-7 8:2:9'

数値として指定することもできます。

フォーマット              入力例
-----------------------  -------------------------
YYYYMMDDHHMMSS           20091004152507
YYMMDDHHMMSS             091004152507

ではDATETIME型のカラムを持つテーブルを作成します。

p4-7

様々なフォーマットでデータを追加してみます。

p4-8

追加したデータを取得すると次のように表示されます。

p4-9

TIMESTAMP型のフォーマットはDATETIME型とほぼ同じですが、使い方などが異なります。TIMESTAMP型についてはまた別途詳しく確認します。

YEAR型

年を数値として指定する場合、YYYY が基本となるフォーマットですが、次のような指定方法も許可されています。

フォーマット              入力例
-----------------------  -------------------------
YYYY                     2009
YY                       09

文字列として指定することもできます。

フォーマット              入力例
-----------------------  -------------------------
'YYYY'                   '2001'
'YY'                     '98'

なお年が2桁で指定された場合は次のルールによって4桁の年に変換します。

70-99 の範囲の年の値は 1970-1999
 1-69 の範囲の年の値は 2001-2069

DATE型などと異なり0を指定すると2000にはなりませんので注意が必要です。数字の0や文字列の'0'を指定すると0000に変換されます。

ではYEAR型のカラムを持つテーブルを作成します。

p4-10

様々なフォーマットでデータを追加してみます。

p4-11

追加したデータを取得すると次のように表示されます。

p4-12

MySQLの使い方の他の記事を見てみる

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)