这让我很困惑如何连续地从表格中选择日期。 假设我有absent_report表并且有这样的条目,
Sno Code date
1 101 01-01-2014
2 101 02-01-2014
3 101 03-01-2014
4 101 05-01-2014
5 101 06-01-2014
6 101 07-01-2014
我只想从日期中选择继续日期。比如前三个日期不是第四个等等。 示例就像我有一个日期,我必须比较是像31-12-2013现在从这里下一个继续日期,如01-01-2014,02-01-2014,03-01-2014只,无论下一个记录像我在该表05-01-2014,06-01-2014,07-01-2014中有日期。我只想要第一次连续约会。希望这更清楚我想要的东西。
答案 0 :(得分:1)
使用BETWEEN
语法
SELECT * FROM table WHERE date BETWEEN '2014-01-01' AND '2014-01-03';
答案 1 :(得分:0)
您可以检查下一行是否有第二天,或前一行是否有前一天。为此,我使用this answer中所述的DATE_ADD()
。但是,我不确定这是否比完全在PHP中实现逻辑更好。
SELECT sno, code, date FROM table AS current
WHERE
DATE(DATE_ADD(date, INTERVAL -1 DAY)) = (SELECT date FROM table AS previous WHERE previous.date < current.date ORDER BY date DESC LIMIT 1)
OR
DATE(DATE_ADD(date, INTERVAL +1 DAY)) = (SELECT date FROM table AS next WHERE next.date > current.date ORDER BY date ASC LIMIT 1)
ORDER BY date ASC
查看工作here。