Mysql获取指定时间范围数据的各种实例

吾爱主题 阅读:176 2023-05-09 14:09:00 评论:0

前言

MySQL获取某个时间范围内的数据 TO_DAYS(date)函数。

to_days():返回从0000年至当前日期的总天数。

表数据:

1、今天(TO_DAYS())

?
1 select * from 表名 where to_days(字段名) = to_days(now());

2、今天昨天(TO_DAYS())

?
1 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) – TO_DAYS(字段名) <= 1

3.近7天(DATE_SUB())

?
1 SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY ) <= date (字段名)

4.本月(DATE_FORMAT())

?
1 SELECT * FROM 表名 WHERE DATE_FORMAT(字段名, ‘%Y%m ') = DATE_FORMAT( CURDATE( ) , ‘%Y%m' )

5.上一月(PERIOD_DIFF()) 

?
1 SELECT * FROM 表名 WHERE PERIOD_DIFF( date_format( now( ) , ‘%Y%m ' ) , date_format(字段名, ‘%Y%m' ) ) =1

6.本季度

?
1 select * from `表名` where QUARTER(字段名)=QUARTER(now());

7.上季度

?
1 select * from `表名` where QUARTER(字段名)=QUARTER(DATE_SUB(now(),interval 1 QUARTER));

8.本年

?
1 select * from `表名` where YEAR (字段名)= YEAR (NOW());

9.去年

?
1 select * from `表名` where year (字段名)= year (date_sub(now(),interval 1 year ));

10.本周

?
1 SELECT * FROM 表名 WHERE YEARWEEK(date_format(字段名, '%Y-%m-%d' )) = YEARWEEK(now());

11.上周

?
1 SELECT * FROM 表名 WHERE YEARWEEK(date_format(字段名, '%Y-%m-%d' )) = YEARWEEK(now())-1;

 为空是因为默认按周日为第一天。

根据yearweek(date,mode)可知,第二个参数可以设置第一天是周几。

12.本月

?
1 select * from 表名 where date_format(字段名, '%Y-%m' )=date_format(now(), '%Y-%m' )

13.距今6个月

?
1 select * from 表名 where 字段名 between date_sub(now(),interval 6 month ) and now();

总结 

到此这篇关于Mysql获取指定时间范围数据的文章就介绍到这了,更多相关Mysql获取指定时间范围数据内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/wangshiqi666/article/details/130566585

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容