MySQLで時間を小文字のam/pm形式で表示する方法
MySQLの時間データを小文字の「am/pm」形式で表示したい場合は、LOWER()関数とDATE_FORMAT()関数を組み合わせて使用します。この記事では、具体的な手順をサンプルコード付きで解説します。
1. テーブルを作成する
まず、時間型のカラムを持つテーブルを作成しましょう。
mysql> create table formatTime
-> (
-> LoginTime time
-> );
Query OK, 0 rows affected (0.56 sec)
ここでは、ログイン時刻を保存するためのLoginTimeカラム(time型)を含むformatTimeテーブルを作成しました。
2. レコードを挿入する
次に、INSERT文を使ってテーブルにレコードを挿入します。
mysql> insert into formatTime values('12:40:34');
Query OK, 1 row affected (0.20 sec)
mysql> insert into formatTime values('14:10:58');
Query OK, 1 row affected (0.13 sec)
mysql> insert into formatTime values('16:56:40');
Query OK, 1 row affected (0.18 sec)
mysql> insert into formatTime values('10:12:14');
Query OK, 1 row affected (0.16 sec)午前と午後の両方のパターンを確認できるよう、4件の時刻データを登録しました。
3. 登録したレコードを確認する
SELECT文でテーブル内の全レコードを表示してみましょう。
mysql> select * from formatTime;
実行結果は以下の通りです。
+-----------+
| LoginTime |
+-----------+
| 12:40:34 |
| 14:10:58 |
| 16:56:40 |
| 10:12:14 |
+-----------+
4 rows in set (0.00 sec)
4. 小文字のam/pm形式で時間を表示する
いよいよ本題です。LOWER()関数でDATE_FORMAT()の結果を小文字に変換することで、小文字のam/pm形式で時刻を表示できます。
mysql> select LOWER(DATE_FORMAT(LoginTime,'%l:%i %p')) from formatTime;
実行結果は以下の通りです。
+------------------------------------------+
| LOWER(DATE_FORMAT(LoginTime,'%l:%i %p')) |
+------------------------------------------+
| 12:40 pm |
| 2:10 pm |
| 4:56 pm |
| 10:12 am |
+------------------------------------------+
4 rows in set (0.04 sec)
書式指定子の解説
このクエリで使用している書式指定子は以下の通りです。
- %l:時間を1〜12の形式で表示(先頭のゼロなし)
- %i:分を2桁のゼロ埋め形式で表示(00〜59)
- %p:午前・午後を「AM」または「PM」で表示
DATE_FORMAT()単体では「AM」「PM」と大文字で出力されますが、それをLOWER()関数で囲むことで、結果全体が小文字に変換され、「pm」「am」と表示されます。このテクニックは、Webアプリケーションなどで時刻を見やすく表示したい場合に便利です。
-
PHPとMySQLで時刻を扱う方法|strtotime()とDATE_FORMAT()による形式変換
PHPで時刻形式を変換する方法 PHPで時刻データを扱う際、strtotime()関数を使えば、「8:55 PM」のような人間が読みやすい12時間制の表記を、データベースで扱いやすい24時間制(HH:MM:SS)へ簡単に変換できます。 PHPコード例 $timeValue = 8:55 PM; $changeTimeFormat = date(H:i:s, strtotime($timeValue)); echo(24時間制への変換結果=); echo($changeTimeFormat); このコードでは、まずstrtotime()が文字列「8:55 PM」をUNIXタイムスタンプに変換
-
PHP変数「11:00 AM」をMySQLの時間形式に変換する方法
PHPの「11:00 AM」をMySQLの時間形式に変換する方法 MySQLのTIME型やDATETIME型は、時刻を24時間表記の「HH:MM:SS」形式で管理します。そのため、「11:00 AM」のようにAM/PMを含む文字列をデータベースに保存する場合は、事前に形式を変換しておく必要があります。本記事では、PHP標準のDateTimeクラスを使った変換方法を、サンプルコードと実行結果付きで解説します。 変換の基本の流れ DateTime::createFromFormat() … 入力文字列をDateTimeオブジェクトとして解析する format() … 解析結果を「H:i:s」(2