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

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') のように記述するだけで簡単に取得できます。日付ベースのフィルタリングを行う際には非常に便利な組み合わせなので、ぜひ覚えておきましょう。

  1. MySQLでWHERE句に複数の条件を指定してデータを更新する方法

    MySQLでWHERE句に複数の値を指定して更新する方法MySQLのUPDATE文では、WHERE句に複数の条件を組み合わせることで、より正確に対象のレコードを絞り込んで更新することができます。AND演算子やOR演算子を使うことで、複数のカラムの値を条件として指定可能です。この記事では、実際にテーブルを作成し、WHERE句に複数の条件を指定してデータを更新する手順を具体的な例とともに解説します。まずはテーブルを作成する最初に、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable -> ( -> Id int, -&

  2. MySQLのWHERE句で期日と現在日付のレコードをチェックする条件の書き方

    期日(duedate)と現在の日付を比較してレコードの妥当性をチェックしたい場合、MySQLでは IF() 関数 を使うと便利です。NULL値や過去の日付が含まれるデータを自動的に判定し、「Wrong Date」などのラベルを表示させることができます。まずは、動作を確認するためのテーブルを作成しましょう。テーブル作成例mysql> create table demo89 -> ( -> duedate date -> ); Query OK, 0 rows affected (0.78 sec)次に、INSERTコマンドを使ってテーブルにいくつか