MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

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() 関数が最もシンプルでおすすめです。

  1. MySQLでタイムスタンプ(UNIX時間)から日付のみを表示する方法

    タイムスタンプ(UNIX時間)の値から日付を表示するには、MySQLのFROM_UNIXTIME()関数を使用します。この関数は、UNIXタイムスタンプを「YYYY-MM-DD HH:MM:SS」形式の日時に変換してくれます。ここでは、実際にテーブルを作成し、動作を確認していきましょう。 サンプルテーブルの作成 まず、タイムスタンプ値を格納するためのテーブルを作成します。 mysql> create table DemoTable -> ( -> timestampValue bigint -> ); Query OK, 0 rows affe

  2. 【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