MySQLで現在の日付より前の日付データを抽出する方法
MySQLでは、NOW() 関数と比較演算子を使うことで、現在の日時より前の日付を持つレコードを簡単に抽出できます。この記事では、実際にテーブルを作成し、サンプルデータを登録したうえで、現在日時より過去の日付レコードを取得する手順を解説します。
1. サンプルテーブルの作成
まず、日付型(DATETIME)のカラムを持つテーブルを作成しましょう。
mysql> create table DemoTable1877 ( DueDate datetime ); Query OK, 0 rows affected (0.00 sec)
2. テストデータの挿入
次に、INSERT文を使って複数のレコードを登録します。
mysql> insert into DemoTable1877 values('2019-12-10');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1877 values('2019-12-05');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1877 values('2019-12-07');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1877 values('2019-12-09');
Query OK, 1 row affected (0.00 sec)
3. 登録されたレコードの確認
SELECT文ですべてのレコードを表示してみましょう。
mysql> select * from DemoTable1877;
実行すると、以下のような結果が出力されます。
+---------------------+ | DueDate | +---------------------+ | 2019-12-10 00:00:00 | | 2019-12-05 00:00:00 | | 2019-12-07 00:00:00 | | 2019-12-09 00:00:00 | +---------------------+ 4 rows in set (0.00 sec)
4. 現在の日付を確認する
CURDATE() 関数を使うと、現在の日付を確認できます。ここでは例として「2019-12-08」が返されているものとします。
mysql> select curdate(); +------------+ | curdate() | +------------+ | 2019-12-08 | +------------+ 1 row in set (0.00 sec)
5. 現在の日付より前のレコードを抽出するクエリ
現在の日時より前の日付を持つレコードだけを取得するには、WHERE句で NOW() 関数と比較します。
mysql> select * from DemoTable1877 where DueDate < now();
実行結果は以下の通りです。
+---------------------+ | DueDate | +---------------------+ | 2019-12-05 00:00:00 | | 2019-12-07 00:00:00 | +---------------------+ 2 rows in set (0.00 sec)
ポイント解説
NOW() 関数は現在の「日付+時刻」を返すため、DATETIME型カラムとの比較に適しています。なお、時刻を考慮せず日付だけで比較したい場合は CURDATE() を使うことも可能です。
mysql> select * from DemoTable1877 where DueDate < curdate();
このように、比較演算子「<」と日時関数を組み合わせることで、期限切れのタスクや有効期限が過ぎたデータなど、過去の日付レコードを柔軟に抽出できます。
-
MySQLのフィールドに現在の日付を設定する方法(UNIX_TIMESTAMP(now)の使い方)
MySQLでは、unix_timestamp()関数を使うことで、現在の日時をUNIXタイムスタンプとして取得し、テーブルのフィールドに簡単に設定できます。この記事では、実際にテーブルを作成し、現在の日付(UNIXタイムスタンプ)をフィールドに設定する手順を解説します。UNIXタイムスタンプとはUNIXタイムスタンプとは、1970年1月1日00:00:00 UTCからの経過秒数を表す数値です。日時を整数として扱えるため、比較や計算が容易になり、データベースでの時間管理によく利用されます。サンプルテーブルの作成まず、以下のようにCREATE TABLE文でテーブルを作成します。mysql>
-
MySQLでテーブルの日付レコードを変更する方法|UPDATEとDATE_ADD()の使い方
MySQLで保存済みの日付データに年数を加算して変更したい場合、UPDATEコマンドとDATE_ADD()関数を組み合わせることで簡単に実現できます。ここでは、実際のSQLクエリ例を使いながら、日付レコードを変更する手順を順番に解説します。1. テーブルを作成するまず、日付型(date)のカラムを持つテーブルを作成します。mysql> create table DemoTable1984 ( ShippingDate date ); Query OK, 0 rows affected (0.00 sec)2. レコードを挿入する次に、INSERTコマンドを使ってテ