2013-11-26 69 views
1

我有一個帶有生日日期字段的聯繫表。Cakephp如何僅按日期和月份排序

現在我想在下週內顯示生日的列表。我可以展示它,但訂單是基於年份。

如何訂購數據,僅基於月份和日期?

$sideBarTaskSuggestion = 
$this->Project->Contact->find('all', array(
    'conditions' => array(
     'Contact.group_id' => $this->Session->read('Auth.User.group_id'), 
     'Contact.birthdate NOT' => null, 
     'AND' => array(
      array('Contact.birthdate NOT' => null), 
      array('Contact.birthdate + INTERVAL EXTRACT(YEAR FROM NOW()) - 
       EXTRACT(YEAR FROM Contact.birthdate) YEAR <=' => date('Y-m-d', 
       strtotime('+1 week'))), 
      array('Contact.birthdate + INTERVAL EXTRACT(YEAR FROM NOW()) - 
       EXTRACT(YEAR FROM Contact.birthdate) YEAR >=' => date('Y-m-d')), 
    ) 
    ), 
    'order' => 'Contact.birthdate DESC' 
) 
); 
+1

難道除了我誰也懶得讀的問題時,有水平滾動條的要求? –

+1

你有沒有嘗試在你的'AND'條件下做同樣的事情?具體來說:''order'=>'EXTRACT(從Contact.birthdate開始的月)DESC'' – iso27002

+0

@DanBracuk修復水平滾動條 – Harts

回答

3

當你說你要 '?對數據進行排序,只是基於月份和日子只有',我假設你的意思是:

  • 2013年11月22日
  • 1922年10月21日
  • 2000年3月5日
  • 2001年1月31日
  • 1990年1月1日

那就試試這個: 'order' => 'DAYOFYEAR(Contact.birthdate) DESC'

+0

真棒工作! – Harts

+0

以上是在即將到來的1周內查找生日的查詢嗎?如果我想改變即將到來的1個月,該怎麼辦?請分享 –

+0

@AadityaBhatt - 我的答案是結果如何排序。您需要更改'conditions'數組來更改返回的數據。 – AgRizzo

相關問題