对于MySQL而言,它有自己的函数来查询时间和日期,查询今天的数据也有相应的做法。

数据库结构如下,进行说明:

CREATE TABLE `orders` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`order_name` varchar(45) COLLATE utf8_bin NOT NULL,
`order_time` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

1.查询今天的数据

1.1方法一

SELECT * FROM orders WHERE TO_DAYS(order_time) = TO_DAYS(NOW())

参数说明:

TO_DAYS()是MySQL自带的函数,其作用是查询指定日期到0年的天数。

NOW()是表示当前时间 

当前时间见详细说明

1.2方法二

select * from orders where DAY(order_time)  = DAY(NOW())

参数说明:

YEAR()返回指定时间的年份
MONTH()返回指定时间的月份
DAY()返回指定时间的日份

具体用法:

SELECT YEAR('2021-06-05');##2021
SELECT MONTH('2021-06-05');##6
SELECT DAY('2021-06-05');##5

2.查询昨天的数据

SELECT * FROM orders WHERE TO_DAYS(NOW()) - TO_DAYS(order_time) = 1

查询昨天的数据,只需要今天的天数比数据的时间多1天即可。

3.查询最近7天的数据

最近7天,也包括今天。

SELECT * FROM orders where DATE_SUB(CURDATE(), INTERVAL 7 DAY) < date(order_time)

参数说明:

DATE_SUB() 函数作用是对日期减去指定的时间间隔(天,月,季度...),返回新的日期。

date()函数时把值转换为日期类型。

CURDATE()是当前的日期,

具体用法:

SELECT DATE_SUB(CURDATE(), INTERVAL 7 DAY); ##2021-05-26
SELECT date(NOW()); ##2021-06-02

当前日期用法见详细说明

4.查询最近30天的数据

最近30天,也包括今天。

SELECT * FROM orders where DATE_SUB(CURDATE(), INTERVAL 30 DAY) < date(order_time)

5.查询本月的数据

5.1方法一

SELECT * FROM orders WHERE DATE_FORMAT(order_time, '%Y%m') = DATE_FORMAT(CURDATE(), '%Y%m')

参数说明:

DATE_FORMAT()是对日期进行格式化,%Y%m表示只格式化到月

具体用法:

SELECT DATE_FORMAT('2021-06-02 10:30:25','%Y%m') ##202106

5.2方法二

select * from orders where MONTH(order_time)  = MONTH(NOW()) 

6.查询上个月的数据

SELECT * FROM orders WHERE PERIOD_DIFF(DATE_FORMAT(NOW(),'%Y%m'), DATE_FORMAT(order_time,'%Y%m')) =1

参数说明:

PERIOD_DIFF()函数返回两日期之间的差异

具体用法:

SELECT PERIOD_DIFF(20210530, 20210512); ##18

7.查询最近6个月的数据

最近6个月,包含当前月份。

SELECT * FROM orders WHERE PERIOD_DIFF(DATE_FORMAT(NOW(),'%Y%m'), DATE_FORMAT(order_time,'%Y%m')) <=5

8.查询本季度的数据

SELECT * FROM orders WHERE QUARTER(order_time)=QUARTER(NOW())

参数说明:

QUARTER()函数返回给定日期值(1到4之间的数字)的一年中的季度。

具体用法:

SELECT QUARTER("2021-05-01 09:34:21"); ##2

9.查询上季度的数据

SELECT * FROM orders WHERE QUARTER(order_time)=QUARTER(DATE_SUB(NOW(),INTERVAL 1 QUARTER))

这里使用DATE_SUB()函数获取上个季度的日期。

10.查询今年的数据

SELECT * FROM orders WHERE YEAR(order_time)=YEAR(NOW())

11.查询去年的数据

SELECT * FROM orders WHERE YEAR(order_time)=YEAR(DATE_SUB(NOW(),INTERVAL 1 YEAR))

这里使用DATE_SUB()函数获取上一年的日期。

MySQL查询今天的数据(昨天、本月)的更多相关文章

  1. mysql 查询当天、本周,本月,上一个月的数据---https://www.cnblogs.com/benefitworld/p/5832897.html

    mysql 查询当天.本周,本月,上一个月的数据 今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM ...

  2. mysql查询当天的数据

    mysql查询当天的数据 贴代码: #两个时间都使用to_days()函数 select * from reple where to_days(create_time) = to_days(NOW() ...

  3. MySQL - 查询今天的数据(以及昨天、本月、上个月、今年...) 查询Datetime 时间的数据

    1,查询当天(今天)的数据 1 SELECT * FROM `order` WHERE TO_DAYS(order_time) = TO_DAYS(NOW()) 2,查询昨天的数据 1 SELECT  ...

  4. MySQL 查询当天、本周,本月、上一个月的数据

    mysql查询当天的所有信息: SELECT * FROM 表名 WHERE year(时间字段名)=year(now()) and month(时间字段名) = month(now()) and d ...

  5. mysql 查询当天、本周,本月,上一个月的数据

    今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 近7天 DAY) <= date(时间字段名) 近30天 DAY) & ...

  6. MySQL查询本周、上周、本月、上个月份数据的sql代码(转)

    感谢:http://www.jb51.net/article/32277.htm ----------------------------------------------------------- ...

  7. MySQL查询当天、本周、本月数据语句

    今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ...

  8. mysql查询当天,本周,本月,上一个月的数据(转)

    今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ...

  9. 关于 MySQL查询当天、本周,本月,上一个月的数据

    今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ...

  10. MySQL查询本周、上周、本月、上个月份数据的sql脚本

    2018-11-13 查询今天的数据 select * from 表名 where to_days(时间字段名) = to_days(now()); 查询昨天的数据 SELECT * FROM 表名 ...

随机推荐

  1. 专业文本差异提取指南:用DeepCompare软件精准分离文件差异内容​

    专业文本差异提取指南:用DeepCompare精准分离文件差异内容​​ ​​--告别手动比对,一键导出关键修改部分​​ ​​一.痛点解析:为什么需要差异导出功能?​​ 在合同修订.代码版本管理.法律文 ...

  2. 数据同步智能化!利用ETLCloud自动化流程实现钉钉OA系统数据自动同步至数仓

    钉钉数据同步需求 钉钉是一款企业级通讯和协同办公应用软件,钉钉为企业提供包括聊天.通讯录.日程安排.考勤打卡.审批.通知公告.文件共享.会议等功能,很多企业都在使用钉钉. 很多情况下我们需要把钉钉的数 ...

  3. mock测试及jacoco覆盖率

    单元测试是保证项目代码质量的有力武器,但是有些业务场景,依赖的第三方没有测试环境,这时候该怎么做Unit Test呢,总不能直接生产环境硬来吧? 可以借助一些mock测试工具来解决这个难题(比如下面要 ...

  4. Win10系统怎么打开everyone权限的问题

    很多电脑基地的小伙伴都不知道everyone权限是什么吧?everyone是针对电脑的每个用户的权限,一旦涉及到系统权限操作务必要慎重选择,稍微不对及有可能引起系统故障.everyone权限是最高的用 ...

  5. 时间复杂度O(n)查找最小覆盖子串

    题目:给你一个字符串 s .一个字符串 t .返回 s 中涵盖 t 所有字符的最小子串.如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" . 输入:s = &quo ...

  6. 论文解读《GradEscape: A Gradient-Based Evader Against AI-Generated Text Detectors》

    发表时间:2025 期刊会议:USENIX Security 论文单位:Zhejiang University 论文作者:Wenlong Meng.Shuguo Fan.Chengkun Wei†.M ...

  7. 手写MyBatis

    1. 前言 本篇博客,将使用JDK动态代理.注解.反射等技术,编写一个最简单的MyBatis,可基本实现对象的增删查改 2. 注解的定义 2.1 Delete注解 /** * @ClassName D ...

  8. iSCSI存储协议详解

    iSCSI 存储协议详解 (注意:正确缩写为 iSCSI,全称为 Internet Small Computer System Interface,是一种基于 IP 网络的存储协议.) 1. 什么是 ...

  9. 常见排序整合(python版)

    1.冒泡排序 #bubble sort #时间复杂度为o(n^2) #升序和降序只需要改动其中的一个箭头方向即可 def bubble_sort(li): count=1 for i in range ...

  10. Linux 内核启动过程中的日志输出阶段分析

    问题描述 在对比原理图后,发现打印日志的串口是UART2(GPIO3_A2 & GPIO3_A3),但设备树中只开启了UART0(GPIO1_C2&GPIO1_C3) /* 以下设备树 ...