MySQLで日付全体ではなく「日」のみを抽出するクエリの書き方
MySQLでは、日付型のデータから「年月日」全体ではなく、「日」の部分だけを取り出したいケースがあります。そんなときに便利なのが DAYOFMONTH() 関数です。この記事では、実際にテーブルを作成し、DAYOFMONTH() 関数を使って日付から「日」の値を抽出するまでの手順を、実行例とあわせてわかりやすく解説します。
1. サンプルテーブルを作成する
まず、datetime 型のカラムを持つテーブルを作成します。
mysql> create table DemoTable747 (DueDate datetime);
Query OK, 0 rows affected (0.53 sec)
2. サンプルデータを挿入する
INSERT 文を使って、いくつかの日付データを登録します。
mysql> insert into DemoTable747 values('2019-01-31');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable747 values('2018-12-01');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable747 values('2017-09-14');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable747 values('2016-07-21');
Query OK, 1 row affected (0.14 sec)
3. 登録したデータを確認する
SELECT 文で、テーブル内のすべてのレコードを表示してみましょう。
mysql> select *from DemoTable747;
実行結果は以下のとおりです。
+---------------------+
| DueDate |
+---------------------+
| 2019-01-31 00:00:00 |
| 2018-12-01 00:00:00 |
| 2017-09-14 00:00:00 |
| 2016-07-21 00:00:00 |
+---------------------+
4 rows in set (0.00 sec)
4. DAYOFMONTH() 関数で「日」のみを抽出する
日付全体ではなく「日」だけを取得するには、次のように DAYOFMONTH() 関数を使用します。
mysql> select dayofmonth(DueDate) from DemoTable747;
実行結果は以下のとおりです。「日」の部分だけが数値として取り出せていることがわかります。
+---------------------+
| dayofmonth(DueDate) |
+---------------------+
| 31 |
| 1 |
| 14 |
| 21 |
+---------------------+
4 rows in set (0.00 sec)
補足:DAY() 関数との関係
DAY() 関数は DAYOFMONTH() 関数のシノニム(別名)であるため、どちらを使ってもまったく同じ結果が得られます。また、「月」や「年」を抽出したい場合には、それぞれ MONTH() 関数、YEAR() 関数を利用することで同様に取得できます。用途に応じてこれらの日付関数を使い分けると、日付データの集計や加工がより効率的になります。
-
【MySQL】日付レコードから曜日を減算し、曜日名とともに結果を表示する方法
はじめにMySQLで保存された日付レコードから、その週の開始日(月曜日)を計算して減算し、曜日名とともに結果を表示したい場合があります。このような処理には DATE_FORMAT() 関数を使用します。SUBDATE() と WEEKDAY() を組み合わせることで、各日付が属する週の月曜日の日付を「Mon 19 Oct」のような形式で取得できます。以下、具体的な手順をサンプルコードとともに解説します。1. テーブルの作成まず、日付を文字列として格納するテーブルを作成します。mysql> create table DemoTable1820 ( AdmissionDate
-
MySQLで日付から曜日名を取得する方法(DAYNAME関数の使い方)
MySQLで日付に対応する曜日名を取得するには?MySQLで日付データから曜日名(Sunday、Mondayなど)を取得したい場合は、DAYNAME()関数を使用します。この記事では、実際にテーブルを作成し、DAYNAME()関数を使って曜日名を取得する手順を解説します。1. テーブルを作成するまず、出荷日(ShippingDate)を格納するテーブルを作成しましょう。mysql> create table DemoTable1954 ( ShippingDate date ); Query OK, 0 rows affected (0.00 sec)2. レコー