MySQLのWHERE句で現在の年を取得する方法
MySQLのWHERE句で現在の年を取得するには
MySQLで現在の年を取得し、WHERE句で条件として使用するには、YEAR()関数とCURDATE()関数を組み合わせます。CURDATE()は現在の日付を返し、YEAR()はその日付から年を抽出します。
以下の手順で具体的な使い方を見ていきましょう。
1. サンプルテーブルの作成
まず、テーブルを作成します。
mysql> create table DemoTable1360
-> (
-> JoiningYear int
-> )
-> ;
Query OK, 0 rows affected (0.51 sec)2. レコードの挿入
INSERT文を使ってテーブルにデータを追加します。
mysql> insert into DemoTable1360 values(1998); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable1360 values(2018); Query OK, 1 row affected (0.22 sec) mysql> insert into DemoTable1360 values(2016); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable1360 values(2019); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable1360 values(2017); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable1360 values(2015); Query OK, 1 row affected (0.14 sec)
3. テーブル内の全レコードを表示
SELECT文でテーブルの中身を確認してみましょう。
mysql> select * from DemoTable1360;
実行結果は以下の通りです。
+-------------+ | JoiningYear | +-------------+ | 1998 | | 2018 | | 2016 | | 2019 | | 2017 | | 2015 | +-------------+ 6 rows in set (0.00 sec)
4. WHERE句で現在の年を条件に指定する
次のクエリでは、WHERE句内で year(curdate()) を使うことで、「入社年(JoiningYear)が現在の年と一致するレコード」だけを抽出しています。
mysql> select * from DemoTable1360 where JoiningYear=year(curdate());
実行結果は以下の通りです。
+-------------+ | JoiningYear | +-------------+ | 2019 | +-------------+ 1 row in set (0.00 sec)
補足:その他の便利な日付関数
なお、MySQLでは YEAR(CURDATE()) の代わりに YEAR(NOW()) を使っても同じ結果が得られます。また、特定の日付から年だけを取り出したい場合も、YEAR('2024-05-01') のように記述するだけで簡単に取得できます。日付ベースのフィルタリングを行う際には非常に便利な組み合わせなので、ぜひ覚えておきましょう。
-
MySQLでWHERE句に複数の条件を指定してデータを更新する方法
MySQLでWHERE句に複数の値を指定して更新する方法MySQLのUPDATE文では、WHERE句に複数の条件を組み合わせることで、より正確に対象のレコードを絞り込んで更新することができます。AND演算子やOR演算子を使うことで、複数のカラムの値を条件として指定可能です。この記事では、実際にテーブルを作成し、WHERE句に複数の条件を指定してデータを更新する手順を具体的な例とともに解説します。まずはテーブルを作成する最初に、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable -> ( -> Id int, -&
-
MySQLのWHERE句で期日と現在日付のレコードをチェックする条件の書き方
期日(duedate)と現在の日付を比較してレコードの妥当性をチェックしたい場合、MySQLでは IF() 関数 を使うと便利です。NULL値や過去の日付が含まれるデータを自動的に判定し、「Wrong Date」などのラベルを表示させることができます。まずは、動作を確認するためのテーブルを作成しましょう。テーブル作成例mysql> create table demo89 -> ( -> duedate date -> ); Query OK, 0 rows affected (0.78 sec)次に、INSERTコマンドを使ってテーブルにいくつか