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

MySQLのCURDATE()で前日(昨日)の日付を取得する方法

はじめに:CURDATE()で現在の日付を確認する

まず、CURDATE()関数を使って現在の日付を取得してみましょう。以下のように実行すると、本日の日付が表示されます。

mysql> select CURDATE();
+------------+
| CURDATE()  |
+------------+
| 2019-06-09 |
+------------+
1 row in set (0.00 sec)

現在の日付は「2019-06-09」であることが確認できました。

サンプルテーブルを作成する

続いて、動作確認用のテーブルを作成します。ここでは、IDと出荷日(ShippingDate)を持つシンプルなテーブルを定義しました。

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

DATE_SUB()で前日の日付を挿入する

INSERTコマンドでテーブルにレコードを追加します。このとき、DATE_SUB()関数に「INTERVAL 1 DAY」を組み合わせることで、CURDATE()で取得した現在の日付から1日前(前日)の日付を算出しています。

mysql> insert into DemoTable(ShippingDate) values(date_sub(CURDATE(), interval 1 day));
Query OK, 1 row affected (0.22 sec)

構文のポイント

DATE_SUB()は、第1引数に指定した日付から特定の時間間隔を引き算する関数です。「INTERVAL 1 DAY」なら1日前、「INTERVAL 7 DAY」なら1週間前、「INTERVAL 1 MONTH」なら1か月前といった具合に、柔軟に過去の日付を求められます。逆に未来の日付を取得したい場合は、DATE_ADD()を使用します。

実行結果の確認

SELECT文でテーブル内のすべてのレコードを表示し、結果を確認しましょう。

mysql> select *from DemoTable;

出力

+----+--------------+
| Id | ShippingDate |
+----+--------------+
|  1 | 2019-06-08   |
+----+--------------+
1 row in set (0.00 sec)

出力結果を見ると、ShippingDate列には「2019-06-09」の前日にあたる「2019-06-08」が正しく登録されていることがわかります。このように、CURDATE()とDATE_SUB()を組み合わせれば、MySQLで前日の日付を簡単に取得・保存することが可能です。

  1. MySQLで列内の特定の値の出現回数(カウント)を取得する方法

    MySQLでは、COUNT(*)関数とWHERE句を組み合わせることで、特定の列に含まれる指定した値の出現回数を簡単に取得できます。この記事では、サンプルテーブルを作成し、実際にクエリを実行しながら手順を解説します。 1. サンプルテーブルの作成 まず、動作確認用のテーブルを作成しましょう。 mysql> create table DemoTable ( Id int, Name varchar(100) ); Query OK, 0 rows affected (1.40 sec) Id(整数型)とName(可変長文字列型)の2つの列を持つ

  2. MySQLでCURDATE()とLIKE句を使った部分一致検索の方法

    MySQLにはCONTAINS()という名前の関数は存在しません。そのため、現在の日付(CURDATE())に関連する文字列で部分一致検索を行いたい場合は、CONCAT()関数とLIKE句を組み合わせる方法が有効です。本記事では、実際にサンプルテーブルを作成しながら、その手順を順番に解説していきます。現在の日付を確認するまず、CURDATE()関数を使って現在の日付を取得してみましょう。mysql> select curdate();実行結果は以下の通りです。+------------+ | curdate() | +------------+ | 2019-11-28 | +----