mysql之实现查询当天的数据

 更新时间:2025年09月13日 13:40:00   作者:_江屿_  
文章总结了数据库时间范围查询及统计方法,涵盖当日、昨日、近7天、本月、上月、季度、年度等场景,强调使用复合索引优化查询速度,避免全表扫描,同时涉及按周/日/月统计、时间间隔计算及跨年数据查询策略

1.查询当天数据

  • 第一种:数量小的时候用,数据量稍微起来巨慢
select 字段 from 表名 where to_days(时间字段) = to_days(now());
  • 第二种:速度快
select 字段 from 表名 where 时间字段 BETWEEN CONCAT(CURDATE(),' 00:00:00') AND CONCAT(CURDATE(),' 23:59:59');

最好配合复合索引来查,避免全表扫描

2.查询昨天的数据

SELECT * FROM `day_sell` WHERE TO_DAYS(NOW()) - TO_DAYS(sell_time) <= 1

3.查询最近7天的(包含7天总计7天)

#7天的数据
SELECT * FROM `day_sell` WHERE DATE_SUB(CURDATE(),INTERVAL 7 DAY) < DATE(sell_time);
 
SELECT * FROM day_sell WHERE YEARWEEK(DATE_FORMAT(sell_time,'%Y-%m-%d')) = YEARWEEK(NOW());
 
#上周的数据
SELECT * FROM day_sell WHERE YEARWEEK(DATE_FORMAT(sell_time,'%Y-%m-%d')) = YEARWEEK(NOW()) -1;

4.查询本月的数据

SELECT * FROM `day_sell` WHERE DATE_FORMAT(sell_time,'%Y-%m')= DATE_FORMAT(CURDATE(),'%Y-%m')

5.查询上个月的数据

SELECT * FROM day_sell WHERE PERIOD_DIFF(DATE_FORMAT(NOW(),'%Y%m'),DATE_FORMAT(sell_time,'%Y%m')) = 1;

6.查询上季度

SELECT * FROM day_sell WHERE QUARTER(sell_time) = QUARTER(DATE_SUB(NOW(),INTERVAL 1 QUARTER));

7.查询本季度

SELECT * FROM `day_sell` WHERE QUARTER(sell_time) = QUARTER(NOW())

8.查询今年的数据

SELECT * FROM `day_sell` WHERE YEAR(sell_time) = YEAR(NOW())

9.计算两个时间间隔-天

SELECT DATEDIFF('2020-10-29','2020-10-28') AS days;

10.按周统计

SELECT DATE_FORMAT(sell_time,'%Y%u') weeks,COUNT(sell_time) COUNT FROM `day_sell` GROUP BY weeks;

11.按天统计

SELECT DATE_FORMAT(sell_time,'%Y%m%d') days,COUNT(sell_time) COUNT FROM day_sell GROUP BY days;

12.按月统计

SELECT DATE_FORMAT(sell_time,'%Y%m') months,COUNT(sell_time) COUNT FROM day_sell GROUP BY months;

13.查询去年

SELECT * FROM day_sell WHERE YEAR(sell_time) = YEAR(DATE_SUB(NOW(),INTERVAL 1 YEAR));

14.查询近6个月的数据

SELECT * FROM day_sell WHERE sell_time BETWEEN DATE_SUB(NOW(),INTERVAL 6 MONTH) AND NOW();

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • MySQL中的行级锁详解

    MySQL中的行级锁详解

    MySQL中的行级锁是InnoDB存储引擎提供的一种细粒度锁,基于索引实现,MySQL中锁有很多种,其中从锁的粒度来区分的话可以分为表级锁,行级锁,页级锁,本文主要介绍MySQL中的行级锁,感兴趣的朋友一起看看吧
    2025-03-03
  • mysql 乐观锁和悲观锁的具体使用

    mysql 乐观锁和悲观锁的具体使用

    本文主要介绍了mysql 乐观锁和悲观锁的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • 通过缓存+SQL修改优雅地优化慢查询

    通过缓存+SQL修改优雅地优化慢查询

    本文通过介绍缓存的基本原理和SQL语句的优化手段,以及实际案例的分析,为读者提供了一种简单而有效的优化思路。读者可以通过本文了解到如何在不修改程序代码的情况下,通过巧妙地运用缓存和SQL优化技巧,提高程序的性能和响应速度。
    2023-04-04
  • MySQL慢查询问题排查方式

    MySQL慢查询问题排查方式

    文章介绍了MySQL慢查询排查的步骤,包括查看当前正在运行的事务状态、查看线程状态、杀死线程、辅助判断命令、开启慢查询日志和开启通用查询日志
    2025-02-02
  • MySql恢复数据方法梳理讲解

    MySql恢复数据方法梳理讲解

    MySQL的binlog日志是MySQL日志中非常重要的一种日志,下面这篇文章主要给大家介绍了关于mysql如何利用binlog进行数据恢复的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • 在Mysql存储过程中使用事务实例

    在Mysql存储过程中使用事务实例

    这篇文章主要介绍了在Mysql存储过程中使用事务实例,需要的朋友可以参考下
    2014-04-04
  • MySQL的隐式类型转换整理总结

    MySQL的隐式类型转换整理总结

    隐式类型转换有无法命中索引的风险,在高并发、大数据量的情况下,命不中索引带来的后果非常严重。下面这篇文章主要给大家整理总结了关于MySQL的隐式转化,需要的朋友可以参考借鉴,下面来一起看看吧。
    2016-12-12
  • MySQL的事务和视图使用及说明

    MySQL的事务和视图使用及说明

    事务是数据库中一组SQL语句,要么全部执行成功,要么全部不执行,事务的四个特征为原子性、一致性、持久性和隔离性,隔离性主要解决并发情况下可能出现的脏读、不可重复读和幻读问题,视图是一个虚拟表,根据其他表或视图的查询结果生成,视图可以创建、修改和删除
    2026-01-01
  • 一文搞懂MySQL索引特性(清晰明了)

    一文搞懂MySQL索引特性(清晰明了)

    索引可以提高数据库的性能,提高一个海量数据的检索速度,但是插入,更新,删除的速度相应会降低,下面这篇文章主要给大家介绍了关于MySQL索引特性的相关资料,需要的朋友可以参考下
    2023-04-04
  • 浅谈mysql哪些情况会导致索引失效

    浅谈mysql哪些情况会导致索引失效

    索引在我们使用MySQL数据库时可以极大的提高查询效率,然而,有时候因为使用上的一些瑕疵就会导致索引的失效,无法达到我们使用索引的预期效果,本文就介绍一下几种索引失效的方法
    2021-11-11

最新评论