MySQLでTIMESTAMP型から日付だけを取り出す方法(DATE関数の使い方)
MySQLのTIMESTAMP型カラムには「日付」と「時刻」が一緒に格納されています。このうち日付部分だけを抽出したい場合は、MySQLに組み込まれている DATE() 関数を使うのが最も簡単な方法です。
基本構文
DATE() 関数の基本的な書式は以下のとおりです。
SELECT DATE(対象のTIMESTAMPカラム名) AS 任意の別名 FROM テーブル名;
それでは、実際にテーブルを作成しながら動作を確認していきましょう。
サンプルテーブルの作成
まず、TIMESTAMP型のカラムを持つテーブルを作成します。
mysql> create table DateFromTimestamp -> ( -> ShippingDateTime timestamp -> ); Query OK, 0 rows affected (0.60 sec)
次に、作成した ShippingDateTime カラムに日時データを挿入します。
mysql> insert into DateFromTimestamp values('2012-12-26 13:24:35');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DateFromTimestamp values('2013-11-26 14:36:40');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DateFromTimestamp values('2016-07-22 15:20:10');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DateFromTimestamp values('2017-11-04 04:25:30');
Query OK, 1 row affected (0.15 sec)登録データの確認
SELECT文ですべてのレコードを表示してみます。
mysql> select *from DateFromTimestamp;
実行結果
+---------------------+ | ShippingDateTime | +---------------------+ | 2012-12-26 13:24:35 | | 2013-11-26 14:36:40 | | 2016-07-22 15:20:10 | | 2017-11-04 04:25:30 | +---------------------+ 4 rows in set (0.00 sec)
このように、日付と時刻がセットで表示されているのがわかります。
DATE()関数で日付部分のみを抽出する
ここで DATE() 関数を使うと、TIMESTAMP値から時刻を除いた日付部分だけを取得できます。
mysql> select date(ShippingDateTime) as OnlyDatePartFromTimestamp from DateFromTimestamp;
実行結果
+---------------------------+ | OnlyDatePartFromTimestamp | +---------------------------+ | 2012-12-26 | | 2013-11-26 | | 2016-07-22 | | 2017-11-04 | +---------------------------+ 4 rows in set (0.00 sec)
補足:その他の日付抽出方法
DATE() 関数以外にも、以下のような方法で日付部分を取得できます。
- CAST関数を使う方法:
CAST(ShippingDateTime AS DATE)でも同じ結果が得られます。 - DATE_FORMAT関数を使う方法:
DATE_FORMAT(ShippingDateTime, '%Y-%m-%d')を使えば、表示形式を自由に指定できます(例:「2024/01/15」など)。
用途に応じて使い分けると便利ですが、単純に日付だけを取り出すなら DATE() 関数が最もシンプルでおすすめです。
-
MySQLでタイムスタンプ(UNIX時間)から日付のみを表示する方法
タイムスタンプ(UNIX時間)の値から日付を表示するには、MySQLのFROM_UNIXTIME()関数を使用します。この関数は、UNIXタイムスタンプを「YYYY-MM-DD HH:MM:SS」形式の日時に変換してくれます。ここでは、実際にテーブルを作成し、動作を確認していきましょう。 サンプルテーブルの作成 まず、タイムスタンプ値を格納するためのテーブルを作成します。 mysql> create table DemoTable -> ( -> timestampValue bigint -> ); Query OK, 0 rows affe
-
【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