MySQLのMAX()関数とMIN()関数を使ってテーブルから最新・最古の日付を取得する方法
MySQLでテーブルから最新の日付を取得したい場合は、日付型の値が格納されているカラム名を MAX() 関数の引数に指定します。逆に、最も古い日付を取得したい場合は、同じく日付型のカラム名を MIN() 関数の引数として渡します。
サンプルテーブル「Collegedetail」
動作を理解するために、以下のようなデータを持つテーブル「Collegedetail」を例に考えてみましょう。
mysql> Select * from collegedetail; +------+---------+------------+ | ID | Country | estb | +------+---------+------------+ | 111 | INDIA | 2010-05-01 | | 130 | INDIA | 1995-10-25 | | 139 | USA | 1994-09-25 | | 1539 | UK | 2001-07-23 | | 1545 | Russia | 2010-07-30 | +------+---------+------------+ 5 rows in set (0.00 sec)
このテーブルには、大学のID、国名、そして設立日(estb)が登録されています。ここから最も古い設立日の大学と、最も新しい設立日の大学の日付をそれぞれ取り出してみます。
MIN() と MAX() を使ったクエリ例
MIN() 関数で最古の日付を、MAX() 関数で最新の日付を一度に取得するには、次のように1つのSELECT文にまとめて記述できます。
mysql> Select MIN(estb), MAX(estb) from collegedetail; +------------+------------+ | MIN(estb) | MAX(estb) | +------------+------------+ | 1994-09-25 | 2010-07-30 | +------------+------------+ 1 row in set (0.19 sec)
結果の解釈
- MIN(estb) = 1994-09-25: テーブル内で最も古い(最も早い)日付です。
- MAX(estb) = 2010-07-30: テーブル内で最も新しい(最も遅い)日付です。
このように、MIN() と MAX() は数値だけでなく日付型のカラムにもそのまま使えるため、GROUP BY句と組み合わせれば国ごとの最古・最新の日付を集計することなども簡単に行えます。
-
MySQLで現在の日付とテーブル内の日付レコードの差を求める方法
現在の日付とテーブルに保存された日付レコードの差(日数)を求めるには、MySQLの DATEDIFF() 関数を使用します。この関数は、2つの日付の差を日数で返してくれる便利な関数です。ここでは、実際にテーブルを作成し、データを挿入して、現在の日付との差を計算する手順を順番に見ていきましょう。1. テーブルの作成まず、日付型のカラムを持つテーブルを作成します。mysql> create table DemoTable1446-> (-> DueDate date-> );Query OK, 0 rows affected (1.42 sec)2. レコードの挿入次に、I
-
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コマンドを使ってテ