首页 > 原创文章 > 技术应用 > 查看文章

Mysql查当天、本周、当月、本季度、当年等常用查询语句

所属分类:技术应用 来源: 丁老师原创 更新时间:2025-07-25 15:28 浏览: 3703 IP属地: 重庆

以下是mysql常用的日期时间查询语句,其中,时间字段名是默认以datetime格式的,如果是int时间戳格式的时间,则需要在时间字段名字段上,加上from_unixtime(时间字段名)。

查询当天的数据:

#时间字段为y-m-d格式,如果时间字段为int类型的时间戳,则使用from_unixtime(时间字段名)
select * from dls6 where to_days(时间字段名)=to_days(now());


查询昨天的数据:

select * from dls6 WHERE to_days(now())-to_days(时间字段名)<=1;


查询本周的数据:

select * from dls6 WHERE yearweek(date_format(时间字段名,'%Y-%m-%d'))=yearweek(now());


查询最近一周(近7天)的数据:

select * from dls6 where date_sub(curdate(),interval day)<=date(时间字段名);


查询本月的数据:

select * from dls6 where date_sub(时间字段名,'%Y%m')=date_format(curdate(),'%Y%m');


查询最近一月(近30天)的数据:

select * from dls6 where date_sub(curdate(),interval 30 day)<=date(时间字段名);


查询最近6个月(以当前时间计算)的数据:

select * from dls6 where 时间字段名 between date_sub(now(),interval 6 month) and now();


查询上月的数据:

select * from dls6 where period_diff(date_format(now(),'%Y%m'),date_format(时间字段名,'%Y%m'))=1;


查询本季度的数据:

select * from dls6 where quarter(时间字段名)=quarter(now());


查询上季度数据:

select * from dls6 where quarter(时间字段名)=quarter(date_sub(now(),interval 1 quarter));


查询本年数据:

select * from dls6 where year(时间字段名)=year(now());


查询上年数据:

select * from dls6 where year(时间字段名)=year(date_sub(now(),interval 1 year));


查询指定时间段的数据:

select * from dls6 where 时间字段名>='2025-01-01 00:00:00' and 时间字段名<='2025-12-31 23:59:59';


计算两个日期的时间差:

相差秒:

select timestampdiff(second,时间字段1,时间字段2);


相差分钟数:

select timestampdiff(minute,时间字段1,时间字段2);


相差小时数:

select timestampdiff(hour,时间字段1,时间字段2);


相差天数:

select timestampdiff(day,时间字段1,时间字段2);


相差周数:

select timestampdiff(week,时间字段1,时间字段2);


相差月数:

select timestampdiff(month,时间字段1,时间字段2);


相差季度数:

select timestampdiff(quarter,时间字段1,时间字段2);


相差年数:

select timestampdiff(year,时间字段1,时间字段2);


获取本周第一天的日期:

select date_sub(curdate(),interval weekday(curdate())+1 day);


获取本周最后一天的日期:

select date_sub(curdate(),interval weekday(curdate())-5 day);


获取上周的第一天日期

select date_sub(curdate(),interval weekday(curdate())+8 day);


获取上周的最后一天日期

select date_sub(curdate(),interval weekday(curdate())+2 day);


获取本月最后一天的日期

select last_day(now());


获取上月最后一天的日期:

select last_day(now()-interval 1 month);


获取本季度最后一天的日期:

select last_day(makedate(extract(year from curdate()),1) + interval quarter(curdate())*3-1 month);


获取上季度最后一天的日期:

select last_day(makedate(extract(year from curdate()),1) + interval quarter(curdate())*3-4 month);



标签:

相关文章

国内外各大厂的AI编程工具对比

自从AI应用普及以来,各大厂都相应推出了自己的AI编程工具,好不好用先不说,今天咱们把这些工具列出来,并进行一个简单的对比。国内大厂工具腾讯CodeBuddy,是全流程AI一体化工作台,是以vs code插件的形式存在,在vs code...

小程序原型图设计规范与注意事项

在开发微信小程序之前,一般都要先做原型图设计,顾名思义,就是把这个微信小程序前期的效果图做出来,发给客户进行确认,确认内容包含界面排名、功能和内容布局、大致样式等。做原型图是设计师和前端的工作,但是很多刚入行的新人以及没有做过原型图的同...

宝塔面板增加mime类型的方法

有同学咨询,使用的是宝塔面板,现在需要给网站增加一个Mime类型(如mjs),在宝塔中找了很久也没找到可以设置的地方,请问丁老师这个功能该如何增加呢?今天丁老师分享给大家。Mime类型,是指网站可以浏览和下载的文件类型,Mime类型的设...

微信聊天对话中如何使用口令链接打开小程序

有同学咨询,在平时使用微信交流时,有人发送的文字就可以打开微信小程序,这种是什么原理,如果自己也有小程序,该如何实现呢?今天丁老师就这个问题进行一下介绍。微信口令链接其实别人发送的这段文字,是叫做微信口令链接,即发送特定的关键词代码,是...

推荐文章

Bagisto-基于Laravel框架的免费...

软件介绍Basgito是基于Laravel框架的免费电子商务平台,可以快速搭建自己企业专属的电子商务交易平台,适用于中小型外贸企业。该电商平台拥有无头laravel商务(headless laravel commerce)的强大功能,可以快...

AI工具大全:好用的AI工具推荐(持续更新中...

这几年AI技术的发展已经达到新的高度,从提高个人生产力到企业操作效率的各个方面,AI都扮演着不可或缺的角色。无论是进行语言交流、内容创作、或是任务管理,都有相应的AI工具可以帮助我们更加轻松地完成工作。以下是丁老师觉得不错的AI工具推荐,希...

APP和小程序如何集成AI实现机器人客服?

有同学咨询丁老师,他们公司的小程序和APP,是属于C端的客户服务类APP,提供会员注册、下单、发货、订单查询、业务办理进度查看等模块。其中有一个功能是在线咨询,之前是对接的人工在线客服坐席咨询,在用户量大的时候,峰值可能同时需要5-8个客服...

国产信创项目操作系统要求用什么?web中间件...

从事技术开发的同学都知道,不管是做网站也好,开发各种业务系统也好,目前大多数企业部署的web环境是-操作系统:Linux,数据库:Mysql/MariaDB/PostgreSQL/MongoDB,Web容器:Nginx/Tomcat/Apa...