MySQLでタイムスタンプを月に変換するクエリの書き方
タイムスタンプを月に変換する基本構文
MySQLでタイムスタンプ(UNIXタイムスタンプ)を月に変換するには、FROM_UNIXTIME()関数とMONTH()関数を組み合わせて使用します。基本的な構文は以下の通りです。
select month(from_unixtime(yourColumnName)) from yourTableName;FROM_UNIXTIME()関数がUNIXタイムスタンプを日時形式に変換し、その結果に対してMONTH()関数を適用することで、月の数値(1〜12)を取得できます。
サンプルテーブルの作成
まず、動作確認用のテーブルを作成しましょう。
mysql> create table DemoTable1457
-> (
-> Value bigint
-> );
Query OK, 0 rows affected (0.85 sec)レコードの挿入
INSERTコマンドを使って、テーブルにいくつかのUNIXタイムスタンプを挿入します。
mysql> insert into DemoTable1457 values(1570207117);
Query OK, 1 row affected (0.07 sec)
mysql> insert into DemoTable1457 values(1548947534);
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable1457 values(1575213134);
Query OK, 1 row affected (0.13 sec)挿入したレコードの確認
SELECT文を実行して、テーブル内のすべてのレコードを表示します。
mysql> select * from DemoTable1457;実行すると、以下のような結果が出力されます。
+------------+
| Value |
+------------+
| 1570207117 |
| 1548947534 |
| 1575213134 |
+------------+
3 rows in set (0.00 sec)タイムスタンプを月に変換するクエリの実行
それでは、実際にタイムスタンプを月に変換してみましょう。使用するクエリは以下の通りです。
mysql> select month(from_unixtime(Value)) from DemoTable1457;実行結果は以下のようになります。
+-----------------------------+
| month(from_unixtime(Value)) |
+-----------------------------+
| 10 |
| 1 |
| 12 |
+-----------------------------+
3 rows in set (0.00 sec)この出力から、各UNIXタイムスタンプが正しく月に変換されていることがわかります。「1570207117」は10月、「1548947534」は1月、「1575213134」は12月を示しています。
なお、月名(Januaryなど)で取得したい場合は、MONTHNAME(FROM_UNIXTIME(Value))を使用することも可能です。用途に応じて使い分けると便利です。
-
【MySQL】DATE_FORMAT()でタイムスタンプから月名のみを取得する方法
MySQLでTIMESTAMPから月名のみを取得する方法 MySQLで日時データ(TIMESTAMP)から「月名」だけを取り出したい場合は、DATE_FORMAT()関数を使用します。フォーマット指定子に%Mを指定することで、「January」「December」のような完全な英語の月名を簡単に取得できます。 1. サンプルテーブルを作成する まず、TIMESTAMP型のカラムを持つテーブルを作成しましょう。 mysql> create table DemoTable1999 ( ArrivalDate timestamp ); Query OK, 0 rows affected
-
MySQLでYYYY-MM-DD形式の日付をUNIXタイムスタンプに変換する方法
```html MySQLで日付(YYYY-MM-DD形式)をUNIXタイムスタンプに変換するには、UNIX_TIMESTAMP() 関数を使用します。この関数は、指定した日時を「1970年1月1日 00:00:00 UTC」からの経過秒数に変換してくれます。テーブルの作成まず、サンプル用のテーブルを作成します。mysql> create table DemoTable1997 ( DueDate date ); Query OK, 0 rows affected (0.58 sec)レコードの挿入INSERTコマンドを使用して、いくつかのレコードをテーブルに挿入します。mysq