【MySQL】タイムスタンプの一部(年)を条件にレコードを抽出する方法
MySQLでは、YEAR()などの日付関数を使うことで、TIMESTAMP型のカラムから「年」や「月」といった日時の一部を条件にレコードを抽出できます。この記事では、テーブル作成からデータ抽出までの具体的な手順を解説します。
1. テーブルを作成する
まず、TIMESTAMP型のカラムを持つテーブルを作成しましょう。
mysql> create table DemoTable
(
AdmissionDate timestamp
);
Query OK, 0 rows affected (0.90 sec)
2. サンプルデータを挿入する
続いて、INSERTコマンドで複数のレコードを登録します。
mysql> insert into DemoTable values('2007-01-10');
Query OK, 1 row affected (0.34 sec)
mysql> insert into DemoTable values('2015-07-12');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable values('2017-11-01');
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values('2019-08-29');
Query OK, 1 row affected (0.08 sec)
3. 登録したレコードを確認する
SELECT文でテーブル内の全レコードを表示してみます。
mysql> select *from DemoTable;
実行結果は以下の通りです。なお、日付のみを指定して挿入した場合、時刻部分は自動的に「00:00:00」として保存されます。
+---------------------+ | AdmissionDate | +---------------------+ | 2007-01-10 00:00:00 | | 2015-07-12 00:00:00 | | 2017-11-01 00:00:00 | | 2019-08-29 00:00:00 | +---------------------+ 4 rows in set (0.00 sec)
4. タイムスタンプの一部(年)を条件に抽出する
タイムスタンプの一部を基準にレコードを取得するには、WHERE句の中でYEAR()関数を使用します。以下の例では、「AdmissionDate」が2017年のレコードだけを抽出しています。
mysql> select *from DemoTable where year(AdmissionDate)='2017';
実行結果:
+---------------------+ | AdmissionDate | +---------------------+ | 2017-11-01 00:00:00 | +---------------------+ 1 row in set (0.23 sec)
補足:月や日単位での抽出も可能
YEAR()と同様に、MONTH()関数やDAY()関数を組み合わせれば、月単位・日単位での絞り込みも簡単に行えます。例えば、11月のレコードだけを取得したい場合は、次のように記述します。
mysql> select *from DemoTable where month(AdmissionDate)='11';
このように日付関数を活用することで、TIMESTAMP型のデータから柔軟に目的のレコードを取り出すことができます。
-
MySQLで月ごとにテーブルの合計値を集計する方法
MySQLで日付データを月単位にグループ化して合計値を求めたい場合、GROUP BY句とMONTH()関数を組み合わせることで簡単に実現できます。この記事では、実際のサンプルを使いながら手順を詳しく解説します。1. サンプルテーブルの作成まず、購入日と金額を格納するテーブルを作成します。mysql> create table DemoTable1628 -> ( -> PurchaseDate date, -> Amount int -> ); Query OK, 0 rows affected (1.55 sec)2. テストデー
-
MySQLで条件に基づいてテーブルから一部の行のみを削除する方法
MySQLで条件に基づいてテーブルから一部の行のみを削除する方法MySQLでは、DELETE文とWHERE句を組み合わせることで、テーブルから条件に合致する行だけを選択的に削除できます。WHERE句を指定しないとテーブル内のすべての行が削除されてしまうため、条件の指定は非常に重要です。ここでは、実際の例を使って手順を解説します。1. テーブルの作成まず、サンプル用のテーブルを作成します。mysql> create table DemoTable -> ( -> Id int, -> Name varchar(20) -> );Query O