• mysql oracle统计报表每天每月每年SQL


    mysql查询当天、昨天、本周、上周、近7天、近30天、本月、上个月、近6个月、本季度、上季度、本年和去年的数据

    注意
    XML
    < 应该转为 <

    当天
    SELECT * FROM 表名 WHERE TO_DAYS(时间字段名) = TO_DAYS(NOW());

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

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

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

    近7天
    SELECT * FROM 表名 WHERE DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= DATE(时间字段名);

    近30天
    SELECT * FROM 表名 WHERE DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= DATE(时间字段名);

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

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

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

    SELECT * FROM 表名 WHERE WEEKOFYEAR(FROM_UNIXTIME(时间字段名,'%y-%m-%d')) = WEEKOFYEAR(NOW()); 

    SELECT * FROM 表名 WHERE MONTH(FROM_UNIXTIME(时间字段名,'%y-%m-%d')) = MONTH(NOW()); 

    SELECT * FROM 表名 WHERE YEAR(FROM_UNIXTIME(时间字段名,'%y-%m-%d')) = YEAR(NOW()) AND MONTH(FROM_UNIXTIME(时间字段名,'%y-%m-%d')) = MONTH(NOW());

    近6个月
    SELECT * FROM 表名 WHERE 时间字段名 BETWEEN DATE_SUB(NOW(),INTERVAL 6 MONTH) AND NOW();

    本季度
    SELECT * FROM 表名 WHERE QUARTER(时间字段名) = QUARTER(NOW());

    上季度
    SELECT * FROM 表名 WHERE QUARTER(时间字段名) = QUARTER(DATE_SUB(NOW(),INTERVAL 1 QUARTER));

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

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


    Oracle几个常用的日期计算SQL示例

    1. 1、查询上月的所有日期:
    2. SELECT TO_CHAR (TRUNC (TRUNC (SYSDATE, 'MM') - 1, 'month') + LEVEL - 1,
    3. 'yyyy-MM-dd')
    4. AS month_day
    5. FROM DUAL
    6. CONNECT BY LEVEL <= TO_CHAR (LAST_DAY (TRUNC (SYSDATE, 'MM') - 1), 'dd');
    7. 2、查询当月的所有日期:
    8. SELECT TO_CHAR (TRUNC (SYSDATE, 'month') + LEVEL - 1,
    9. 'yyyy-MM-dd')
    10. AS month_day
    11. FROM DUAL
    12. CONNECT BY LEVEL <= TO_CHAR (LAST_DAY (TRUNC (SYSDATE, 'MM') - 1), 'dd');
    13. 3、查询上月月份:
    14. SELECT TO_CHAR(ADD_MONTHS(SYSDATE,-1),'YYYY-MM') FROM DUAL;
    15. 4、查询当月天数:
    16. SELECT TO_CHAR (LAST_DAY (TRUNC (SYSDATE, 'mm')), 'DD') mounth_count
    17. FROM DUAL;
    18. 5、查询当月第一天:
    19. SELECT TRUNC (SYSDATE, 'month') FROM DUAL;
    20. 6、查询当月最后一天:
    21. SELECT TO_CHAR (LAST_DAY (SYSDATE), 'YYYY-MM-DD') FROM DUAL;
    22. 7、计算两个日期之间天数:
    23. SELECT TO_DATE ('2013-08-05', 'yyyy-MM-dd')
    24. - TO_DATE ('2013-08-01', 'yyyy-MM-dd')
    25. + 1
    26. AS count_day
    27. FROM DUAL;
    28. 8、查询两个日期之间的所有日期:
    29. SELECT ROWNUM, TO_DATE ('2013-01-02', 'yyyy-MM-dd') + ROWNUM - 1 AS allday
    30. FROM DUAL
    31. CONNECT BY ROWNUM <
    32. TO_DATE ('2013-01-07', 'yyyy-MM-dd')
    33. - TO_DATE ('2013-01-02', 'yyyy-MM-dd')
    34. + 2;
  • 相关阅读:
    金融数据合规管理研究
    【ArcPy】简化ArcGISPro默认Python环境体量
    07-RabbitMQ之SpringCloudStream集成
    OpenHarmony中SystemAbility的实现方法
    01背包代码模板
    catia距离测量
    Java数据结构与算法(爬楼梯动态规划)
    递增序列主题Code
    USB /OTG 接线
    Prophet模型的简介以及案例分析
  • 原文地址:https://blog.csdn.net/weixin_45623983/article/details/134391470