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

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

所属分类:技术应用 来源: 丁老师原创 更新时间:2025-07-25 15:28 浏览: 2019 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);



相关文章

如何在Parrot OS中安装Docker

在ParrotOS中,可以使用以下命令轻松安装Docker┌─[user@parrot-virtual]─[~/Desktop]└──╼ $sudo apt install docker.io安装成功后:┌─[user@parrot-v...

网页Iframe读取PDF文件的参数设置

在网页中读取和显示PDF文件,可以使用Iframe加载,只需要在iframe的src中设置pdf地址即可,如:<iframe src="pdf地址" </iframe 通过iframe加载pdf,不但可以...

JetBrains IDE文件类型是问号无法...

最近在使用IntelliJIDEA开发时,突然发现有个文件,图标显示问号,这个文件也无法打开,无法编辑,是怎么回事呢?如图:经过研究发现,这是IDE无法判断此文件类型,从而将此文件根据文件内容设置为了未知类型,所以就无法打开。那么要解决...

linux使用lnmp套件安装后打卡默认站点...

最近要在某单位内网部署项目,使用了lnmp来配置环境,软件安装成功,可安装后不管是打开ip地址还是默认站点,都提示nginx403forbidden,这是怎么回事呢?首先,已经出现了nginx403提示,说明nginx是安装正常的。其次...

推荐文章

fontawesome所有图标class类名...

fontawesome所有图标class类名单,适用于4.7.0版本。总计有593个图标class类(包含别名):fa-500pxfa-address-bookfa-address-book-ofa-address-cardfa-addre...

国外VPS购买后如何登录?

国外很多VPS购买后,只有密码,没有登录账号,如何登录呢?我们以one.com为例,购买了VPS后,只能设置密码,但是用root,也无法登录,是怎么回事呢?查了官方文档,原来修改的VPS密码,不是root的,这个VPS默认的账号是admin...

windows11右键恢复经典模式的方法[亲...

windows11更新后,不管是桌面的右键,还是文件上点右键,都非常地别扭,而且也非常的卡顿。在网上找了一堆方法,都不管用,经过不懈努力,终于找到了真正能恢复经典版右键的方法。废话不多说,具体方法如下:1.以管理员方式运行CMD打开后,在C...

小红书个人账号/认证账号/企业号区别一览

普通账号个人认证号企业认证号蓝色认证标识薯条推广聚光平台效果广告普通应商业合作以KOL/KOC身份和品牌合作以品牌方身份发起起合作开设店铺个人店铺或个体户(不支持港澳台公司申请)旗舰店店或专卖店(支持港澳台公司申请)主动私信每天10位陌生用...