[MySQL] TIME_FORMAT 関数 [MariaDB]

この記事は約4分で読めます。
スポンサーリンク

当サイトには広告が含まれています。

時刻(時分秒)の例

・”02:34:56″ ;
・”12:34:56″ ;
・”2:34:56″ ;// 時が1桁
・”25:34:56″ ;// 時が23を超過

SQL文

SELECT TIME_FORMAT(`time`,’%H:%i:%s’) ;

%H(大文字のエイチ):時(00-23,24…)

時が1桁の場合は頭に0を付加して2桁で返し、2桁の場合は2桁で返す。
時が24以上の場合は、そのまま2桁で返す。

・時が「00」の場合は「00」を返す
・時が「01」の場合は「01」を返す
・時が「09」の場合は「09」を返す
・時が「12」の場合は「12」を返す
・時が「13」の場合は「13」を返す
・時が「24」の場合は「24」を返す
・時が「25」の場合は「25」を返す

%h(小文字のエイチ):時(01-12)

時が1桁の場合は頭に0を付加して2桁で返し、2桁の場合は2桁で返す。
但し、返す範囲は(01-12)。

・時が「00」の場合は「12」を返す
・時が「01」の場合は「01」を返す
・時が「09」の場合は「09」を返す
・時が「12」の場合は「12」を返す
・時が「13」の場合は「01」を返す
・時が「24」の場合は「12」を返す
・時が「25」の場合は「01」を返す

いわゆる「12時間制」で、「%p」(AM または PM)と組み合わせて使う。

%I(大文字のアイ):時(01-12)

「%h(小文字のエイチ)」と同じ?

%k(小文字のケー):時(0-23,24…)

時が1桁の場合は1桁、2桁の場合は2桁で返す。
時が24以上の場合は、そのまま2桁で返す。

・時が「00」の場合は「0」を返す
・時が「01」の場合は「1」を返す
・時が「09」の場合は「9」を返す
・時が「12」の場合は「12」を返す
・時が「13」の場合は「13」を返す
・時が「24」の場合は「24」を返す
・時が「25」の場合は「25」を返す

%l(小文字のエル):時(1-12)

時が1桁の場合は1桁、2桁の場合は2桁で返す。
但し、返す範囲は(1-12)。

・時が「00」の場合は「12」を返す
・時が「01」の場合は「1」を返す
・時が「09」の場合は「9」を返す
・時が「12」の場合は「12」を返す
・時が「13」の場合は「1」を返す
・時が「24」の場合は「12」を返す
・時が「25」の場合は「1」を返す

いわゆる「12時間制」で、「%p」(AM または PM)と組み合わせて使う。

%p(小文字のピー):AM または PM

AM(午前)かPM(午後)かを返す。

・時が「00」の場合は「AM」を返す
・時が「11」の場合は「AM」を返す
・時が「12」の場合は「PM」を返す
・時が「23」の場合は「PM」を返す
・時が「24」の場合は「AM」を返す
・時が「25」の場合は「AM」を返す

%T(大文字のティー):時(hh:mm:ss)

1桁で放り込んでも全て2桁で返してくれる。

・ 1: 2: 3 → 01:02:03
・00:34:56 → 00:34:56
・ 0:34:56 → 00:34:56
・01:34:56 → 01:34:56
・ 1:34:56 → 01:34:56
・11:34:56 → 11:34:56
・12:34:56 → 12:34:56
・23:34:56 → 23:34:56
・24:34:56 → 24:34:56
・25:34:56 → 25:34:56

%i(小文字のアイ):分(00-59)

%s(小文字のエス):秒(00-59)

%S(大文字のエス)も同じ?

%r(小文字のアール)

1桁の場合でも頭に0を付加して2桁とし、右に半角スペースとAM または PMを付けて返す。
当然、時の返す範囲は(1-12)。

・00:34:56 → 12:34:56 AM
・ 0:34:56 → 12:34:56 AM
・01:34:56 → 01:34:56 AM
・ 1:34:56 → 01:34:56 AM
・11:34:56 → 11:34:56 AM
・12:34:56 → 12:34:56 PM
・23:34:56 → 11:34:56 PM
・24:34:56 → 12:34:56 AM
・25:34:56 → 01:34:56 AM

大混戦

・%I(大文字のアイ)と%h(小文字のエイチ)が同じ機能
・%s(小文字のエス)と%S(大文字のエス)が同じ機能
・%I(大文字のアイ)は時(Hour)だが%i(小文字のアイ)は分(Minutes)
・%l(小文字のエル)と%I(大文字のアイ)が、フォントによっては区別が付かない。

上記の理由により、大混乱及び大混戦が発生、非常に理解しにくくなってるンかはシラン(SILANE)。

関連:[MySQL] ランキングなどで順位を取得する方法 [自己結合]

関連:[MySQL] idを詰める(連番を振り直す)方法とAUTO_INCREMENTのリセット [DB]

関連:[PHP] 真偽値(true/false)をprintすると「1/空文字列」になる [文字列]

関連:[PHP] str_replaceと配列 [文字列置換]

関連:[PHP] checkdateが意味不明杉流件 [クヅォ]

タイトルとURLをコピーしました