MySQLで生年月日(DOB)から年齢を取得する方法
MySQLで生年月日(DOB:Date of Birth)から年齢を求めるには、TIMESTAMPDIFF()関数を使用します。第1引数に「YEAR」を指定すると、2つの日付の差が「年」単位で返されるため、誕生日から見た満年齢をそのまま計算できます。
基本構文
SELECT TIMESTAMPDIFF(YEAR, 日付カラム名, CURRENT_DATE) AS 任意の別名 FROM テーブル名;
実際に試してみよう
1. テーブルを作成する
まずは生年月日を格納するテーブルを作成します。
mysql> CREATE TABLE DemoTable
-> (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> DateOfBirth DATETIME
-> );
Query OK, 0 rows affected (0.73 sec)2. サンプルデータを挿入する
INSERT文を使って、テーブルにレコードを追加します。
mysql> INSERT INTO DemoTable(DateOfBirth) VALUES('1998-06-04 12:30:00');
Query OK, 1 row affected (0.18 sec)
mysql> INSERT INTO DemoTable(DateOfBirth) VALUES('2000-01-31 04:10:20');
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable(DateOfBirth) VALUES('2010-12-01 03:50:45');
Query OK, 1 row affected (0.24 sec)3. 登録データを確認する
SELECT文で全レコードを表示してみましょう。
mysql> SELECT * FROM DemoTable;
出力結果
+----+---------------------+ | Id | DateOfBirth | +----+---------------------+ | 1 | 1998-06-04 12:30:00 | | 2 | 2000-01-31 04:10:20 | | 3 | 2010-12-01 03:50:45 | +----+---------------------+ 3 rows in set (0.00 sec)
生年月日から年齢を取得するクエリ
以下のクエリを実行すると、各レコードの生年月日から年齢を取得できます。
mysql> SELECT TIMESTAMPDIFF(YEAR, DateOfBirth, CURRENT_DATE) AS YourAge FROM DemoTable;
出力結果
+---------+ | YourAge | +---------+ | 21 | | 19 | | 8 | +---------+ 3 rows in set (0.00 sec)
押さえておきたいポイント
- 満年齢ベースの計算: TIMESTAMPDIFF(YEAR, ...) は誕生日がまだ来ていない場合に切り捨てられるため、日本の制度で使われる「満年齢」と同じ結果になります。
- 実行日によって結果が変わる: CURRENT_DATE はクエリ実行時点の日付を返すため、同じデータでも実行日により年齢は変化します。
- 他の単位にも応用可能: 「YEAR」を「MONTH」や「DAY」に変更すれば、月齢や経過日数なども同様に算出でき、年齢区分ごとの集計などにも活用できます。
-
MySQLでテーブルの最後の10件のレコードを取得する方法
MySQLでテーブルの末尾にある10行(最新の10件)を取得したい場合は、SELECT文とLIMIT句を組み合わせたサブクエリを利用します。この記事では、実際にテーブルを作成し、データを挿入しながら、最後の10件を取得するクエリの手順を具体的に解説します。 1. サンプルテーブルの作成 まず、動作確認用のテーブルを作成します。 mysql> create table Last10RecordsDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected
-
MySQL Workbenchを使ってサーバー上のデータベースからERモデルを取得する方法
サーバー上のデータベースからERモデル(ER図)を取得するには、まずMySQL Workbenchを起動します。起動直後の画面は以下のとおりです。1. リバースエンジニアリングの開始次に、メニューバーから「Database」メニューを選択し、「Reverse Engineer」をクリックします。Database -> Reverse Engineer2. データベースへの接続すると、下のスクリーンショットのようなウィザードが表示されます。ここでデータベースのパスワードを入力し、「OK」ボタンを2回押してください。3. ウィザードの進行「OK」ボタンを押すと、次のウィザード画面に移行します