MySQLでタイムスタンプ(UNIX時間)から日付のみを表示する方法
タイムスタンプ(UNIX時間)の値から日付を表示するには、MySQLのFROM_UNIXTIME()関数を使用します。この関数は、UNIXタイムスタンプを「YYYY-MM-DD HH:MM:SS」形式の日時に変換してくれます。ここでは、実際にテーブルを作成し、動作を確認していきましょう。
サンプルテーブルの作成
まず、タイムスタンプ値を格納するためのテーブルを作成します。
mysql> create table DemoTable
-> (
-> timestampValue bigint
-> );
Query OK, 0 rows affected (0.70 sec)
レコードの挿入
INSERTコマンドを使って、テーブルにいくつかのレコードを挿入します。
mysql> insert into DemoTable values(1538332200); Query OK, 1 row affected (0.21 sec) mysql> insert into DemoTable values(1577730600); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values(1488652200); Query OK, 1 row affected (0.12 sec)
テーブルの内容を確認する
SELECT文ですべてのレコードを表示してみましょう。
mysql> select *from DemoTable;
実行結果は以下のとおりです。
+----------------+ | timestampValue | +----------------+ | 1538332200 | | 1577730600 | | 1488652200 | +----------------+ 3 rows in set (0.00 sec)
タイムスタンプから日付を表示するクエリ
以下が、FROM_UNIXTIME()関数を使ってタイムスタンプ値を日付に変換して表示するクエリです。
mysql> select from_unixtime(timestampValue) as Date from DemoTable;
実行結果:
+---------------------+ | Date | +---------------------+ | 2018-10-01 00:00:00 | | 2019-12-31 00:00:00 | | 2017-03-05 00:00:00 | +---------------------+ 3 rows in set (0.00 sec)
日付部分だけを取り出すには
上記の出力には時刻情報も含まれています。「2018-10-01」のように日付部分のみが必要な場合は、DATE()関数を組み合わせるのが便利です。
mysql> select date(from_unixtime(timestampValue)) as Date from DemoTable;
また、FROM_UNIXTIME()関数の第2引数にフォーマット文字列を指定すれば、任意の形式で日付を取得することもできます。
mysql> select from_unixtime(timestampValue, '%Y-%m-%d') as Date from DemoTable;
このように、FROM_UNIXTIME()関数を使えば、UNIXタイムスタンプを人間が読みやすい日付形式に簡単に変換できます。用途に応じてDATE()関数やフォーマット指定を活用してください。
-
【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で日付形式から数値の日付値を抽出する方法
MySQLで日付形式から数値の日付値を抽出する方法MySQLで「31-Jan-19」のような文字列として保存された日付データを数値(UNIXタイムスタンプ)に変換したい場合は、UNIX_TIMESTAMP() 関数と STR_TO_DATE() 関数を組み合わせて使用します。基本的な構文は以下の通りです。select UNIX_TIMESTAMP(STR_TO_DATE(yourColumnName, %d-%b-%y)) as anyAliasName from yourTableName;サンプルテーブルの作成まず、動作確認用のテーブルを作成します。mysql> create tab