2014-06-23 27 views
0

我想拉兩個日期之間的所有bday成員 - 不管年份..只是與月和日..我得到正確檢索的結果,但沒有按我期望的順序...順序不按預期工作

我會需要逐月按月升序排列的記錄 - 這樣一個月內的成員會按升序進行分組..(我把它按月分組,但不是按天分組)

查詢:

SELECT * 
    FROM family_member 
    WHERE DATE_FORMAT(dob, '%m-%d') 
      BETWEEN DATE_FORMAT('2013-07-1', '%m-%d') 
      AND DATE_FORMAT('2013-09-30', '%m-%d') 
    order by MONTH(dob) 
      ,DAYOFMONTH(dob) 
      and status='a' 
+0

您使用哪種DBMS? –

+0

它看起來像MySQL,但爲什麼不只是由沒有月份和日期一個月的dob命令? – Jester

+0

按月份而不是年份可能 –

回答

3

我認爲你需要TA柯列於order byand

SELECT * FROM family_member 
    WHERE DATE_FORMAT(dob, '%m-%d') BETWEEN DATE_FORMAT('2013-07-1', '%m-%d') AND DATE_FORMAT('2013-09-30', '%m-%d') 
    order by MONTH(dob), DAYOFMONTH(dob), status='a' 

由於寫的,它是由MONTH(dob)訂貨,然後是AND布爾結果荷蘭國際集團DAYOFMONTH(dob)status='a'

要麼或你在中間插入order by您的where子句:

SELECT * FROM family_member 
    WHERE DATE_FORMAT(dob, '%m-%d') BETWEEN DATE_FORMAT('2013-07-1', '%m-%d') AND DATE_FORMAT('2013-09-30', '%m-%d') 
    and status = 'a' 
    order by MONTH(dob), DAYOFMONTH(dob)