假设我想要选择两个日期之间的所有记录加上之前的一条记录和该日期之后的一条记录?所有记录按日期排序。
答案 0 :(得分:6)
您可以使用与限制语句结合使用的联合。像下面的内容(未经测试,无法访问mysql)。
(select column from table where datefield > startdate and datefield < stopdate)
union
(select column from table where datefield < startdate order by datefield desc limit 1)
union
(select column from table where datefield > stopdate order by datefield limit 1)
这将为您提供下一行,无论它在哪里落日。
感谢语法修复,小马。
答案 1 :(得分:2)
(select * from t where date < start_date order by date desc limit 1)
union (select * FROM t WHERE date between start_date and end_date)
union (select * from t where date > end_date order by date asc limit 1)
答案 2 :(得分:0)
您可以使用函数来添加或减去值,如下所示:
select * from table where field1 < ADDDATE( CURTIME() , INTERVAL 1 DAY)
请查看此link,其中包含一些示例。
答案 3 :(得分:-1)
SELECT *
FROM table
WHERE date BETWEEN DATE_ADD(current_date(), INTERAL -1 DAY)
AND DATE_ADD(current_date(), INTERVAL 1 DAY);