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

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

所属分类:技术应用来源: 丁老师原创更新时间:2025-01-07 09:49IP属地: 重庆
点击阅读全文

以下是mysql常用的日期时间查询语句,其中,时间字段名是默认以datetime格式的,如果是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);

dls6.jpg

相关文章

使用virtualbox安装macos出现问...

最近更换电脑,需要重新安装macos。为了便于切换,使用了virtualbox进行安装。但是安装了N次,总是卡在黑屏代码,一切都是按照流程步骤来的,而且都是很简单的操作,也并没有太多需要注意和调整的地方,这是怎么回事呢?忽然想起来,在vir...

counter和offset分页方式解析

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

常用邮箱的smtp地址及端口

网易企业邮箱:smtphz.qiye.163.com465网易163/126/yeah系列邮箱:smtp.163.com465QQ邮箱:smtp.exmail.qq.com465阿里云企业邮箱smtp.qiye.aliyun.com465微...

Edge浏览器在编辑器选中文本,关闭弹出“使...

Edge浏览器的Copilot功能,在使用网页web编辑器或者输入框时,如果选中文本,则会强制弹出一个“使用Copilot改写”的提示框,容易遮挡到编辑器的工具栏,很是烦人,如图:那么怎么来关闭这个功能呢?解决方法如下:1.点击Edge浏览...

推荐文章

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

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

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

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

关闭edge浏览器自带image viewe...

挺不错的浏览器,强加入了edgeimageviewer图片浏览器,感觉不是那么好,对于开发者来说,更想要原生的东西。包括微信网页版里的表情图片,用edgeimageviewer打开的话,无法保存为gif格式,即使保存了,也只是第一帧静态的。...

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

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

QQ咨询微信咨询