MySQLで年齢計算

趣旨

いつも検索しちゃうので忘れないように覚え書き

日付計算

MySQL 4.1 リファレンスマニュアル :: 3 MySQL チュートリアル :: 3.3 データベースの作成および使用 :: 3.3.4 テーブルからの情報の取得 :: 3.3.4.5 日付計算

mysql> SELECT name, birth, CURDATE(),
    -> (YEAR(CURDATE())-YEAR(birth))
    -> - (RIGHT(CURDATE(),5) AS age
    -> FROM pet ORDER BY age;
+----------+------------+------------+------+
| name     | birth      | CURDATE()  | age  |
+----------+------------+------------+------+
| Chirpy   | 1998-09-11 | 2003-08-19 |    4 |
| Puffball | 1999-03-30 | 2003-08-19 |    4 |
| Whistler | 1997-12-09 | 2003-08-19 |    5 |
| Slim     | 1996-04-29 | 2003-08-19 |    7 |
| Claws    | 1994-03-17 | 2003-08-19 |    9 |
| Fluffy   | 1993-02-04 | 2003-08-19 |   10 |
| Fang     | 1990-08-27 | 2003-08-19 |   12 |
| Bowser   | 1989-08-31 | 2003-08-19 |   13 |
| Buffy    | 1989-05-13 | 2003-08-19 |   14 |
+----------+------------+------------+------+

文字列置換

あと、こっちも覚えとくと便利。

MySQL 5.1 リファレンスマニュアル :: 11 関数と演算子 :: 11.3 文字列関数

REPLACE(str,from_str,to_str)
ストリング to_str によって置換されたストリング from_str のすべての発生と共に、ストリング str を戻します。REPLACE() は、from_str を検索する際、大文字小文字を区別した検出を行います。
mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww');
        -> 'WwWwWw.mysql.com'

投稿日:

ページのトップへ戻る