ホームページ >データベース >mysql チュートリアル >MySQL を使用して生年月日から年齢を計算するにはどうすればよいですか?

MySQL を使用して生年月日から年齢を計算するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-16 11:53:58979ブラウズ

How to Calculate Age from a Date of Birth Using MySQL?

MySQL (InnoDB) を使用して年齢を計算します

この記事では、MySQL の TIMESTAMPDIFF 関数を使用して、データベースに保存されている生年月日に基づいて年齢を計算する方法について説明します。

質問:

生年月日が「dd-mm-yyyy」形式で保存されていると仮定すると、次のことを決定する必要があります。

  • 日付を減算した後に返される日付の形式。
  • 返された形式を使用して人の年齢を計算する方法。

解決策:

日付形式:

現在の日付から別の日付を減算した後に MySQL によって返される日付形式は、デフォルトの MySQL 日付と時刻の形式である YYYY-MM-DD HH:MM:SS です。

年齢の計算:

TIMESTAMPDIFF 関数を使用して、異なる単位 (年を含む) で 2 つの日付の差を計算できます。例は次のとおりです:

<code class="language-sql">SELECT TIMESTAMPDIFF(YEAR, '1970-02-01', CURDATE()) AS age;</code>

このクエリは、1970 年 2 月 1 日と現在の日付の差を計算し、年齢を年単位で返します。

例:

「dd-mm-yyyy」形式の「date_of_birth」という列を含むテーブルについて考えます。

<code class="language-sql">CREATE TABLE persons (
  id INT PRIMARY KEY,
  name VARCHAR(255),
  date_of_birth DATE
);

INSERT INTO persons (name, date_of_birth) VALUES
  ('John Doe', '1970-02-01'),
  ('Jane Doe', '1975-04-15');</code>

「John Doe」の年齢を計算するには、次のクエリを実行します:

<code class="language-sql">SELECT TIMESTAMPDIFF(YEAR, date_of_birth, CURDATE()) AS age
FROM persons
WHERE name = 'John Doe';</code>

このクエリは結果を返します:

<code>age
51</code>

以上がMySQL を使用して生年月日から年齢を計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。