MYSQL:从周一开始获取上周的所有结果)

标签 mysql date

CREATE TABLE `sport_data` (
      `id` int(255) NOT NULL,
      `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
      `sport` varchar(255) NOT NULL,
      `musclePlan` varchar(255) NOT NULL,
      `sport_time` varchar(255) NOT NULL,
      `kcal` varchar(255) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

如何从该表中获取上周(从周一到周日)的所有数据?

我试过:

WHERE date >= curdate() - INTERVAL DAYOFWEEK(curdate())+5 DAY AND date < curdate() - INTERVAL DAYOFWEEK(curdate())-2 DAY

不知道这样说对不对?

提前致谢。

最佳答案

>=< pattern就是我们平时用的。那部分看起来不错。

我认为问题是关于返回范围开始值和结束值的表达式

我建议我们针对各种日期值测试这些表达式,而不仅仅是 CURDATE() .我们可以使用一个值代替 CURDATE() ,并检查结果,并对一系列日期值执行此操作。

方便的是,这些表达式在 SELECT 中的计算结果相同像在 WHERE 中一样列出条款。所以我们可以运行 SELECT声明,并检查结果。

例如:

SELECT t.dt                                      AS dt
     , t.dt - INTERVAL DAYOFWEEK(t.dt)+5 DAY     AS _ge
     , t.dt - INTERVAL DAYOFWEEK(t.dt)-2 DAY     AS _lt
  FROM (
         SELECT CURDATE() + INTERVAL 0 DAY AS dt
         UNION ALL SELECT CURDATE() + INTERVAL -1 DAY
         UNION ALL SELECT CURDATE() + INTERVAL -2 DAY
         UNION ALL SELECT CURDATE() + INTERVAL -3 DAY
         UNION ALL SELECT CURDATE() + INTERVAL -4 DAY
         UNION ALL SELECT CURDATE() + INTERVAL -5 DAY
         UNION ALL SELECT CURDATE() + INTERVAL -6 DAY
         UNION ALL SELECT CURDATE() + INTERVAL -7 DAY
         UNION ALL SELECT CURDATE() + INTERVAL -8 DAY
         UNION ALL SELECT CURDATE() + INTERVAL -9 DAY
         UNION ALL SELECT CURDATE() + INTERVAL -10 DAY
       ) t

如果表达式根据规范为每个可能的日期值返回我们期望的值,则表达式是正确的。

如果表达式返回的值不符合规范,那么我们需要进行调整。请注意,在星期三日期“有效”的表达式可能在星期日日期“无效”。)

关于MYSQL:从周一开始获取上周的所有结果),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50026532/

相关文章:

php - Base 64 代码不起作用...未以 html php mysql 形式显示数据库中的图像

DATE(字段)上的 MySQL 空结果集 =

r - 如何使用 R 和 dplyr 安排或排序日期

php - mysqli_query 在 PHP 中不起作用

mysql - 是否可以编写代码来删除第一个分区而不指定名称?

php - MYSQL数据库性能调优

mysql - Ubuntu 上未初始化常量 MysqlCompat::MysqlRes (mysql gem 错误),未修复

date - 是否可以仅通过 DateTimeFormatter 解析 LocalDate?

jquery - 有谁知道jquery中计算时间流逝的插件吗?

php - 从数据库中提取日期并仅选择今天的记录