作者DRLai (蘇打)
看板Database
標題[SQL ] 查詢月份間所有的活動
時間Sun Dec 16 14:59:56 2012
資料庫 MySQL 5.5.10
最近想要撰寫一個活動的系統
可以顯示特定月份中的活動
(例如選擇2012/12,會查詢出2012/12中會發生的事件)
(活動有可能是一個區間,非單一日期)
原本的想法如下
SQL: SELECT * FROM TABLE WHERE
YEAR(stardate) >= 2012 AND YEAR(enddate) <= 2012 AND
MONTH(startdate) >= 12 AND MONTH(enddate) <= 12
startdate/enddate 格式為 DATETIME
不過發現這樣設計很有問題
跨年份的活動就沒辦法 query
例如有個活動是2012.12.31~2013.1.1
這樣就失敗了
有沒有比較建議的寫法呢?
我查了很多網路上的寫法,都是單一日期(單一日期可以用BETWEEN達成)
而我的活動是一個區間
另外像是活動日期2012.11.30~2013.1.1
當query為2012/12時一樣要顯示
想了很久找不到簡潔的寫法,能否請版友提供建議~感謝m(_ _)m
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.166.221.241
※ 編輯: DRLai 來自: 118.166.221.241 (12/16 15:01)
※ 編輯: DRLai 來自: 118.166.221.241 (12/16 15:01)
※ 編輯: DRLai 來自: 118.166.221.241 (12/16 15:03)
1F:推 danielguo:(startdate<'2013-01-01')AND(enddate>='2012-12-01') 12/16 15:25
2F:→ DRLai:感謝~ 我試試看 12/17 00:23
3F:→ ji394su33000:enddate為什麼需要條件?如果不是資料有問題應該不用? 12/17 02:03
4F:→ ji394su33000:沒事 我犯傻 別理我 12/17 02:20