MySQL 按日查询数据

Part 1 查询今日的数据

要在 MySQL 中查询今日的数据,可以使用 CURDATE() 函数来获取当前日期,并将其与你的表中的日期字段进行比较。假设你的表名是 your_table,并且有一个日期字段 your_date_column,你可以使用以下查询来获取今日的数据:

复制代码
SELECT *
FROM your_table
WHERE DATE(your_date_column) = CURDATE();

这里解释一下各个部分的用途:

  • SELECT *:选择表中的所有列。
  • FROM your_table:指定要查询的表。
  • WHERE DATE(your_date_column) = CURDATE():筛选条件,DATE(your_date_column) 提取日期部分(如果 your_date_columnDATETIME 类型),CURDATE() 返回当前日期。

如果你的日期时间字段 your_date_column 包含时间信息,并且你希望精确匹配从今天零点开始到当前时间结束的数据,你也可以使用 BETWEEN 语句:

复制代码
SELECT *
FROM your_table
WHERE your_date_column BETWEEN CONCAT(CURDATE(), ' 00:00:00') AND NOW();

这里解释一下各个部分的用途:

  • CONCAT(CURDATE(), ' 00:00:00'):将当前日期与字符串 ' 00:00:00' 连接,生成今天的零点时刻。
  • NOW():返回当前的日期和时间。

这两种方法都可以有效地查询今日的数据,具体选择哪种方式取决于你的需求和 your_date_column 的数据类型。

Part 2

在 MySQL 中查询昨日的数据,你可以使用 CURDATE() 函数结合日期运算来获取昨天的日期,并将其与你的表中的日期字段进行比较。假设你的表名是 your_table,并且有一个日期字段 your_date_column,你可以使用以下查询来获取昨日的数据:

复制代码
SELECT *
FROM your_table
WHERE DATE(your_date_column) = CURDATE() - INTERVAL 1 DAY;

这里解释一下各个部分的用途:

  • SELECT *:选择表中的所有列。
  • FROM your_table:指定要查询的表。
  • WHERE DATE(your_date_column) = CURDATE() - INTERVAL 1 DAY:筛选条件,DATE(your_date_column) 提取日期部分(如果 your_date_columnDATETIME 类型),CURDATE() - INTERVAL 1 DAY 返回昨天的日期。

如果你的日期时间字段 your_date_column 包含时间信息,并且你希望精确匹配从昨天零点开始到昨天结束的数据,你也可以使用 BETWEEN 语句,结合 DATE_SUB() 函数来生成昨天的日期和时间范围:

复制代码
SELECT *
FROM your_table
WHERE your_date_column BETWEEN CONCAT(DATE_SUB(CURDATE(), INTERVAL 1 DAY), ' 00:00:00') AND CONCAT(DATE_SUB(CURDATE(), INTERVAL 1 DAY), ' 23:59:59');

或者更简洁地使用 DATE() 函数和 INTERVAL 表达式结合 TIMESTAMPDATETIME 字段:

复制代码
SELECT *
FROM your_table
WHERE your_date_column >= CURDATE() - INTERVAL 1 DAY + INTERVAL 0 SECOND
  AND your_date_column < CURDATE() + INTERVAL 0 SECOND;

在这个查询中:

  • CURDATE() - INTERVAL 1 DAY + INTERVAL 0 SECOND 生成昨天的零点时刻(因为 CURDATE() 返回的是没有时间的日期,加上 INTERVAL 0 SECOND 不会改变值,但确保了结果是 DATETIME 类型,方便比较)。
  • CURDATE() + INTERVAL 0 SECOND 生成今天的零点时刻(同样,加上 INTERVAL 0 SECOND 是为了类型匹配),但因为我们想要的是昨天的数据,所以使用 < 来确保不包括今天的任何时间。

这两种方法都可以有效地查询昨日的数据,具体选择哪种方式取决于你的需求和 your_date_column 的数据类型。通常,第二种方法(使用 >=<)在处理 DATETIME 字段时更为直观和准确。

Part 3

相关推荐
一 乐19 分钟前
民宿|基于java的民宿推荐系统(源码+数据库+文档)
java·前端·数据库·vue.js·论文·源码
美林数据Tempodata2 小时前
大模型驱动数据分析革新:美林数据智能问数解决方案破局传统 BI 痛点
数据库·人工智能·数据分析·大模型·智能问数
野槐2 小时前
node.js连接mysql写接口(一)
数据库·mysql
Zzzone6832 小时前
PostgreSQL日常维护
数据库·postgresql
chxii2 小时前
1.13使用 Node.js 操作 SQLite
数据库·sqlite·node.js
冰刀画的圈3 小时前
修改Oracle编码
数据库·oracle
这个胖子不太裤3 小时前
Django(自用)
数据库·django·sqlite
麻辣清汤3 小时前
MySQL 索引类型及其必要性与优点
数据库·mysql
2501_915374354 小时前
Neo4j 图数据库安装教程(2024最新版)—— Windows / Linux / macOS 全平台指南
数据库·windows·neo4j
it-搬运工4 小时前
3.图数据Neo4j - CQL的使用
数据库·neo4j