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 サイトの他の関連記事を参照してください。