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

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

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



标签:

相关文章

jquery tablesorter fil...

在使用前端jquery插件,tablesorter做表格排序和搜索时,遇到了一个问题,就是已经加载了jquery.tablesorter.js和jquery.tablesorter.widgets.js,但是在表格中的input输入关键...

公众号域名提示"无法确认该网页的安全性,请谨...

经常有同学提问,公众号绑定的域名链接,访问时提示“无法确认该网页的安全性,请谨慎访问”,这是怎么回事?如何解决呢?如图:这是一个被问及比较多的问题,也是一个比较普遍的情况,今天丁老师就这个问题的原因,以及解决方法,来进行分析和解答。问:...

OpenClaw大龙虾如何卸载?彻底删除Op...

方式一、通用卸载命令openclaw uninstall --all --yes --non-interactive #如果不行,则执行 npx -y openclaw uninstall --all --yes --non-inter...

Counter和Offset分页方式解析

目前国际主流通用的分页方式是使用counter和offset来计算,包括restful调用、接口以及各种应用对接,大多数API端点都遵循相同的约定来返回结果的后续页面。那么这个分页方式到底是怎么使用的呢?其中,counter(有时候也叫...

推荐文章

Wordpress如何开启错误调试,查看错误...

在使用wordpress的过程中,有的时候部分页面打不开,或是程序不能正常使用,也没有显示具体的错误信息,这个时候该怎么办呢?首先是查看错误日志,可以查看wordpress本身的错误日志,以及php的错误日志。这时有朋友提问了,wordpr...

微信小程序搜索如何让排名靠前?

上一期我们讲到了《微信小程序发布后多久可以能被搜索到?》,我们已经知道了微信小程序在上架后,多久能被搜索到的一个时间范围。本期我们讲一下,微信小程序被搜索,如何提升排名,是搜索结果靠前的方法。首先,微信小程序的搜索结果排名,并没有一个固定的...

使用photoshop编辑文字时,弹出的文字...

今天有同学在群里提问,在使用photoshop编辑文字时,经常会弹出一个文字选择的面板如图:这时文字也无法输入,也无法取消和关闭,很是烦人,怎么取消这个功能呢?经过丁老师研究,方法很简单:1.打开photoshop菜单-编辑2.选择首选项-...

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

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

当前在线
免费咨询