我在我的数据库中有约会。
我的数据库在MySQL中。
我想从我的数据库中提取日期,这些日期提供了从上周一到当天的日期。
我该怎么做?
答案 0 :(得分:5)
你首先必须使用DAYOFWEEK
函数计算上周一的星期几,然后从当前日期减去 -
SELECT * from table
WHERE date >= DATE_SUB(CURDATE(),INTERVAL MOD(DAYOFWEEK(CURDATE())-2,7) DAY)
AND date <= DATE_ADD(CURDATE(), INTERVAL MOD(7 - (DAYOFWEEK(CURDATE()) - 1), 7) DAY)
我不是100%肯定这里的+/-数字,你应该可以从中解决这个问题
编辑:如果这只会在期末的星期日运行,那么版本就会简单得多 -
SELECT * from table
WHERE date >= DATE_SUB(CURDATE(), INTERVAL 6 DAY)
AND date <= CURDATE()
答案 1 :(得分:2)
尝试这个
select * from table
WHERE date >date_sub(curdate(), interval WEEKDAY(curdate()) day) ;
答案 2 :(得分:-1)
您可以随时在查询中使用between函数...
SELECT *
FROM orders
WHERE order_date between to_date ('2003/01/01', 'yyyy/mm/dd')
AND to_date ('2003/12/31', 'yyyy/mm/dd');