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

MySQLでNOW()関数を使って現在の日付のレコードを取得する方法

MySQLでは、NOW()関数とDate()関数を組み合わせることで、datetime型のカラムから「今日の日付」に該当するレコードを簡単に抽出できます。この記事では、実際にテーブルを作成し、データを挿入して、現在の日付のレコードを取得するまでの手順を解説します。

1. テーブルの作成

まず、サンプル用のテーブルを作成しましょう。

mysql> create table DemoTable
-> (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> ShippingDate datetime
-> );
Query OK, 0 rows affected (1.16 sec)

ここでは、自動採番されるIdカラムと、配送日を格納するShippingDate(datetime型)カラムを持つテーブル「DemoTable」を作成しました。

2. レコードの挿入

次に、INSERTコマンドを使ってテーブルに複数のレコードを挿入します。ここでは現在の日付を「2019-06-28」として話を進めます。

mysql> insert into DemoTable(ShippingDate) values('2019-01-31');
Query OK, 1 row affected (0.14 sec)

mysql> insert into DemoTable(ShippingDate) values('2019-06-06');
Query OK, 1 row affected (0.11 sec)

mysql> insert into DemoTable(ShippingDate) values('2019-06-28');
Query OK, 1 row affected (0.20 sec)

mysql> insert into DemoTable(ShippingDate) values('2019-07-01');
Query OK, 1 row affected (0.16 sec)

3. 全レコードの確認

SELECT文を実行して、テーブル内のすべてのレコードを表示してみましょう。

mysql> select *from DemoTable;

実行すると、次のような結果が得られます。

出力結果

+----+---------------------+
| Id | ShippingDate        |
+----+---------------------+
| 1  | 2019-01-31 00:00:00 |
| 2  | 2019-06-06 00:00:00 |
| 3  | 2019-06-28 00:00:00 |
| 4  | 2019-07-01 00:00:00 |
+----+---------------------+
4 rows in set (0.00 sec)

4. NOW()関数で現在の日付のレコードを取得する

NOW()関数は現在の日時を返しますが、そのまま比較すると時刻も含まれてしまうため、Date()関数で日付部分だけを取り出して比較するのがポイントです。

以下が、NOW()関数を呼び出して現在の日付のレコードを取得するクエリです。

mysql> select *from DemoTable where Date(ShippingDate)=Date(now());

出力結果

実行すると、現在の日付(2019-06-28)に一致するレコードのみが表示されます。

+----+---------------------+
| Id | ShippingDate        |
+----+---------------------+
| 3  | 2019-06-28 00:00:00 |
+----+---------------------+
1 row in set (0.00 sec)

まとめ

WHERE Date(カラム名) = Date(NOW())という条件式を使えば、datetime型のカラムから時刻を無視して「今日のデータ」だけを抽出できます。日別の集計や、当日分の受注・配送データを確認したい場合などに非常に便利なテクニックなので、ぜひ活用してください。

  1. MySQLで現在の日付と翌日のレコードを条件に特定の列を抽出する方法

    MySQLでは、CURDATE()関数を使うことで、現在の日付やその翌日に該当するレコードを簡単に抽出できます。この記事では、実際のサンプルを使いながら、現在の日付と翌日の出荷日を持つレコードから特定の列を選択して取得する方法を解説します。 1. 現在の日付を確認する まず、curdate()関数で現在の日付を取得してみましょう。 mysql> select curdate(); 実行すると、以下のような結果が表示されます。 +------------+ | curdate() | +------------+ | 2019-12-15 | +------------+ 1 row

  2. MySQLで現在の日付に11日を追加する方法【DATE_ADD関数の使い方】

    はじめにMySQLでは、DATE_ADD()関数を使うことで、日付に指定した日数を簡単に加算できます。本記事では、現在の日付(CURDATE())に11日を追加する方法を、テーブル作成からクエリ実行まで具体的な例を交えて解説します。サンプルテーブルの作成まず、デモ用のテーブルを作成しましょう。mysql> create table DemoTable1994 ( ArrivalDate date ); Query OK, 0 rows affected (5.33 sec)テストデータの挿入続いて、INSERTコマンドを使用してテーブルに複数のレコードを挿入します。mysql&g