看板 Database 關於我們 聯絡資訊
資料庫 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)
danielguo:(startdate<'2013-01-01')AND(enddate>='2012-12-01') 12/16 15:25
DRLai:感謝~ 我試試看 12/17 00:23
ji394su33000:enddate為什麼需要條件?如果不是資料有問題應該不用? 12/17 02:03
ji394su33000:沒事 我犯傻 別理我 12/17 02:20