每条记录都有一个“日期范围”,由start_date
和end_date
列表示。当start_date和end_date是相同的日期值时,该记录跨越一天。
+-----------+------------+------------+
| foo_count | start_date | end_date |
+-----------+------------+------------+
| 25 | 2014-02-11 | 2014-02-17 | <- spans one week
| 30 | 2014-02-20 | 2014-02-20 | <- spans one day
| 15 | 2014-02-21 | 2014-02-21 | <- spans one day
| 45 | 2014-02-22 | 2014-02-22 | <- spans one day
+-----------+------------+------------+
有没有办法获取代表单日的 记录(即start_date和end_date匹配)?
答案 0 :(得分:2)
匹配跨越一天的记录:
SELECT * FROM footable WHERE start_date = end_date;
匹配一周内的记录:
SELECT * FROM footable WHERE end_date - start_date = 6;
手册中的This page显示了日期和时间运算符。减去两个日期会给出之间的天数。
顺便说一下,我通常会安排这样一个范围的边界,这样只有一端是包容性的,即。开始&lt; = date&lt;结束,所以减去结束 - 开始给出实际的天数。