Mysql 选择月份介于开始日期和结束日期之间的行的更好方法
假设要考虑的月份是2013年10月,我想把2013年10月在开始日期和结束日期之间的所有行都拉出来 我目前正在我的Mysql 选择月份介于开始日期和结束日期之间的行的更好方法,mysql,where,Mysql,Where,假设要考虑的月份是2013年10月,我想把2013年10月在开始日期和结束日期之间的所有行都拉出来 我目前正在我的WHERE子句中使用此选项: WHERE (start_date >= '2013-10-01' AND end_date < '2013-11-01') OR // between 1st and 31st (start_date >= '2013-10-01' AND start_date < '2013-11-01') OR // start
WHERE
子句中使用此选项:
WHERE (start_date >= '2013-10-01' AND end_date < '2013-11-01') OR // between 1st and 31st
(start_date >= '2013-10-01' AND start_date < '2013-11-01') OR // start falls in oct'13
(end_date >= '2013-10-01' AND end_date < '2013-11-01') // end falls in oct'13
其中(开始日期>='2013-10-01'和结束日期<'2013-11-01')或//介于1日和31日之间
(开始日期>='2013-10-01'和开始日期<'2013-11-01')或//开始日期在2013年10月
(结束日期>='2013-10-01'和结束日期<'2013-11-01')//结束日期在2013年10月
这几乎是在开始和结束日期不在2013年10月的情况下完成的工作。例如,它将错过开始日期为2013-05-01
和结束日期为2014-02-22
我相信在
WHERE
中使用的方法会比我目前采用的长方法短而漂亮。有什么建议吗?关于在哪里开始日期<'2013-11-01'和结束日期>='2013-10-01'
添加一个或多个
WHERE (start_date >= '2013-10-01' AND end_date <= '2013-10-31') OR
(start_date < '2013-10-01' AND end_date > '2013-10-31')
其中(开始日期>='2013-10-01'和结束日期'2013-10-31')
我不清楚应该返回哪些值。你是说返回所有在10月份开始或结束的记录?还是在10月之前开始并在10月之后结束的记录?也许你可以提供一些例子。@DBC:如果你认为有一个合适的答案,请把它标记为正确答案。我做了。可悲的是,由于声誉的限制,我无法提高投票率。+1最简单。如果它在月底之前开始,在月初之后结束,轰!对每种情况都检测到重叠。