zoukankan      html  css  js  c++  java
  • Mysql:查询当天、今天、本周、上周、本月、上月、本季度、本年的数据

    1. 今天

    select * from 表名 WHERE TO_DAYS(时间字段名) = TO_DAYS(NOW());

    2. 昨天

    SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) <= 1

    3. 本周

    SELECT * FROM 表名 WHERE YEARWEEK(DATE_FORMAT(时间字段名,'%Y-%m-%d')) = YEARWEEK(NOW());

     注意:这里取得的一周是从星期日到星期六,这与国内的使用习惯不同,国内的一周是指周一到周日。国外把周日算作每周的第一天,比国内早算了一天。因此我们要在原有的基础上减去一天

    SELECT * FROM 表名 WHERE YEARWEEK(DATE_FORMAT(时间字段名,'%Y-%m-%d') - INTERVAL 1 DAY) = YEARWEEK(NOW() - INTERVAL 1 DAY);

    以下计算同理

    4. 上周

    SELECT * FROM 表名 WHERE YEARWEEK(DATE_FORMAT(时间字段名,'%Y-%m-%d')) = YEARWEEK(NOW())-1;

    5. 下周

    SELECT * FROM 表名 WHERE YEARWEEK(DATE_FORMAT(时间字段名,'%Y-%m-%d')) = YEARWEEK(NOW()) +1;

    6. 本月

    SELECT * FROM 表名 WHERE DATE_FORMAT( 时间字段名, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )

    7. 上月

    SELECT * FROM 表名 WHERE PERIOD_DIFF( DATE_FORMAT( NOW( ) , '%Y%m' ) , DATE_FORMAT( 时间字段名, '%Y%m' ) ) =1

    8. 下月

    SELECT * FROM 表名 WHERE PERIOD_DIFF( DATE_FORMAT( NOW( ) , '%Y%m' ) , DATE_FORMAT( 时间字段名, '%Y%m' ) ) = -1

    9. 本季度

    SELECT * FROM 表名 where QUARTER(时间字段名)= QUARTER(NOW());

    10. 上季度

    SELECT * FROM 表名 where QUARTER(时间字段名)=QUARTER(DATE_SUB(NOW(),INTERVAL 1 QUARTER));

    11. 本年

    SELECT * FROM 表名 WHERE YEAR(时间字段名)=YEAR(NOW());

    12. 去年

    SELECT * FROM 表名 WHERE YEAR(时间字段名)=YEAR(DATE_SUB(NOW(),INTERVAL 1 YEAR));

    13. 未来3天

    SELECT * FROM 表名 WHERE 时间字段 BETWEEN NOW() AND ADDDATE(NOW(), INTERVAL 3 DAY)
  • 相关阅读:
    理解C#中的 async await
    kube-proxy IPVS 模式的工作原理
    Kilo 使用教程
    Wireguard 全互联模式(full mesh)配置指南
    我为什么不鼓吹 WireGuard
    iTerm2 实现 ssh 自动登录,并使用 Zmodem 实现快速传输文件
    在 Docker Desktop 中启用 K8s 服务
    ABP 适用性改造
    ABP 适用性改造
    在 ASP.NET Core 应用中使用 Cookie 进行身份认证
  • 原文地址:https://www.cnblogs.com/huiAlex/p/9462879.html
Copyright © 2011-2022 走看看