作者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