作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试获取选择前一周(周日至周六)的查询。我一直在与这个查询作斗争,我能得到的最接近的是过去 7 天,使用以下内容:
SELECT *
FROM dates
WHERE date BETWEEN CURDATE()-INTERVAL 1 WEEK AND CURDATE();
我真的不确定如何从这里继续。似乎我需要在 CURDATE() 和之前的星期六之间创建某种关系?
感谢任何帮助。
最佳答案
您已经过了一年中的一周。
查看周函数:WEEK(date[,mode]) http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_week
该模式描述了如何定义一周(这是一周的开始)WEEK(date,3) 表示从星期一开始的一周。
SELECT *
FROM dates
WHERE
-- Last Week
WEEK(date,3) = WEEK(CURDATE(),3)-1
AND YEAR(date)= YEAR(CURDATE()) ;
不要忘记年份。周只是 1 到 52 之间的数字。所以年份很重要!上面的代码不正确。 它将在今年的最后一周失败!
关于MySQL 从前一周选择,而不仅仅是 7 天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40143790/
我是一名优秀的程序员,十分优秀!