2010-12-29 8 views
2

私は質問を思いつく問題があります。シナリオは次のとおりです。クエリが実行された日の子供の名前と年齢(年数)を示すリストを作成します。このリストは、年齢の高い順(すなわち、最も古い子供)に保存されるべきであり、同じ年齢の子供は、姓、名でアルファベット順に記載される。テーブル構造:mysqlの日付機能

子テーブル (child_id [主キー]、 child_fame、 child_sname、 child_gender、 child_dob)

  1. child_id_1 =/02/1999 07

  2. child_id_2 = 13/11/2002

  3. child-id_3 = 13/11/2002

  4. child_id_4 = 2 6/1999分の10

  5. child_id_5 = 4月5日/ 2004など...

答えて

0

これはそれを行う必要があります。

SELECT *, TIMESTAMPDIFF(YEAR, child_dob, CURRENT_TIMESTAMP) AS age 
FROM child 
ORDER BY child_dob, child_sname, child_fname; 
+0

ありがとう非常に短いクエリ。 –

0

何が必要の日から、子供の年齢を計算する場合あなたはこのリンクを見てみることができます:http://ma.tt/2003/12/calculate-age-in-mysql/コメントには例と他の方法があります。

SELECT DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(dob, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(dob, '00-%m-%d')) AS age 
+1

ありがとうございました。役に立った –