当前位置:   article > 正文

MySQL时间函数使用,查询前一天、当月、当年、上年_mysql查询当月和当年第一条数据

mysql查询当月和当年第一条数据
  1. DATE_SUB()和DATE_ADD()函数,实现日期增减
  2. DATE_SUB(NOW(),INTERVAL 30 MINUTE) 当前时间减30分钟
  3. DATE_SUB(NOW(),INTERVAL 1 day) 当前时间减1
  4. DATE_SUB(NOW(),INTERVAL 1 hour) 当前时间减1小时
  5. DATE_SUB(NOW(),INTERVAL 1 second) 当前时间减1
  6. DATE_SUB(NOW(),INTERVAL 1 week) 当前时间减1星期
  7. DATE_SUB(NOW(),INTERVAL 1 month) 当前时间减1个月
  8. DATE_SUB(NOW(),INTERVAL 1 quarter) 当前时间减1季度
  9. DATE_SUB(NOW(),INTERVAL 1 year) 当前时间减1
  1. -- 1、查询当天的数据
  2. AND TO_DAYS(t1.create_time)=TO_DAYS(NOW());
  3. AND DATEDIFF( NOW(), t1.create_time ) = 0;
  4. -- 2、查询昨天的数据
  5. AND TO_DAYS(NOW())-TO_DAYS(t1.create_time)=1;
  6. AND DATEDIFF( NOW(), t1.create_time ) = 1;
  7. -- 3、查询当周的数据
  8. AND YEARWEEK(DATE_FORMAT(t1.create_time,'%Y-%m-%d'))=YEARWEEK(NOW());
  9. -- 4、查询上周的数据
  10. AND YEARWEEK(DATE_FORMAT(t1.create_time,'%Y-%m-%d'))=YEARWEEK(NOW())-1;
  11. -- 5、查询最近7天的数据
  12. AND DATE_SUB(CURDATE(),INTERVAL 7 DAY)<=DATE(t1.create_time);
  13. AND DATEDIFF( NOW(), t1.create_time ) <= 7;
  14. -- 6、查询当月的数据
  15. AND DATE_FORMAT(t1.create_time,'%Y%m')=DATE_FORMAT(CURDATE(),'%Y%m');
  16. -- 7、查询上月的数据
  17. AND PERIOD_DIFF(DATE_FORMAT(NOW(),'%Y%m'),DATE_FORMAT(t1.create_time,'%Y%m'))=1;
  18. -- 8、查询本季度的数据
  19. AND QUARTER(t1.create_time)=QUARTER(now());
  20. -- 9、查询上季度的数据
  21. AND QUARTER(t1.create_time)=QUARTER(DATE_SUB(now(),interval 1 QUARTER));
  22. -- 10、查询当年的数据
  23. AND YEAR(t1.create_time) =YEAR(NOW());
  24. -- 11、查询上年的数据
  25. AND year(t1.create_time)=year(date_sub(now(),interval 1 year));
  26. AND YEAR(t1.create_time) = (YEAR(NOW()) - 1);
  27. -- 12、上年同天
  28. AND to_days(t1.create_time) = to_days(date_sub(now(),interval 1 year));
  29. -- 12、上年同周
  30. AND YEARWEEK(date_format(t1.create_time,'%Y-%m-%d'),1) = YEARWEEK(date_sub(now(),interval 1 year),1);
  31. -- 12、上年同月
  32. AND date_format(t1.create_time,'%Y%m') = date_format((now() - INTERVAL 1 YEAR ),'%Y%m');

对日期范围搜索的大致有三种方式:
1、between and
t1.create_time BETWEEN '2022-08-01' AND '2022-09-01'

2、DATEDIFF(date1,date2)
SELECT DATEDIFF('2022-08-01','2022-09-01');-31
SELECT DATEDIFF('2022-10-01','2022-09-01');-30

3、TIMESTAMPDIFF(interval,datetime1,datetime2)
FRAC_SECOND毫秒
SECOND秒
MINUTE分钟
HOUR小时
DAY天
WEEK星期
MONTH月
QUARTER季度
YEAR年
SELECT TIMESTAMPDIFF(day,'2022-08-01','2022-09-01');31
SELECT TIMESTAMPDIFF(day,'2022-10-01','2022-09-01');-30
计算结果与DATEDIFF方式的正负相反

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/313873?site
推荐阅读
相关标签
  

闽ICP备14008679号