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

MySQLの日付値を持つレコードから最終日を見つける方法は?


最終日、つまり最新の日付を取得するには、サブクエリで集計関数MAX()を使用します。まずテーブルを作成しましょう-

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

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable(ExpiryDate) values('2018-12-31');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable(ExpiryDate) values('2019-09-01');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(ExpiryDate) values('2019-09-01');
Query OK, 1 row affected (0.07 sec)
mysql> insert into DemoTable(ExpiryDate) values('2016-08-30');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable(ExpiryDate) values('2019-06-23');
Query OK, 1 row affected (0.17 sec)

selectステートメントを使用してテーブルのすべてのレコードを表示する-

mysql> select *from DemoTable;

これにより、次の出力が生成されます-

+----+------------+
| Id | ExpiryDate |
+----+------------+
|  1 | 2018-12-31 |
|  2 | 2019-09-01 |
|  3 | 2019-09-01 |
|  4 | 2016-08-30 |
|  5 | 2019-06-23 |
+----+------------+
5 rows in set (0.00 sec)

以下は、最終日付のレコードを検索するためのクエリです-

mysql> select *from DemoTable
   where ExpiryDate=(select max(ExpiryDate) from DemoTable);

これにより、次の出力が生成されます。挿入されたレコードから、最終日は2019-09-0です。以下の出力でも同じことがわかります-

+----+------------+
| Id | ExpiryDate |
+----+------------+
|  2 | 2019-09-01 |
|  3 | 2019-09-01 |
+----+------------+
2 rows in set (0.00 sec)

  1. 比較演算子はMySQLの日付値とどのように連携しますか?

    日付間の比較演算子は論理的に機能します。次の例では、2つの日付を比較しながら、MySQLは単に2つの数値または文字列を比較しています- mysql> select 20171027 < 20150825; +---------------------------+ | 20171027 < 20150825       | +---------------------------+ |                      0 &nb

  2. MySQLから最後の10行を選択するにはどうすればよいですか?

    MySQLから最後の10行を選択するには、SELECTステートメントとLimitの概念でサブクエリを使用できます。以下は例です。 テーブルを作成します。 mysql> create table Last10RecordsDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected (0.75 sec) テーブルにレコードを挿入します。 mysql> insert into Last10RecordsDemo values(1,John),(