zoukankan      html  css  js  c++  java
  • MYSQL中取当前周/月/季/年的第一天与最后一天

    MYSQL中取当前周/月/季/年的第一天与最后一天

    源地址:http://www.2cto.com/database/201308/240281.html

    整理后的sql代码,全部可执行

    1.  
      #当年第一天:
    2.  
      SELECT DATE_SUB(CURDATE(),INTERVAL dayofyear(now())-1 DAY);
    3.  
       
    4.  
      #当年最后一天:
    5.  
      SELECT concat(YEAR(now()),'-12-31');
    6.  
       
    7.  
      #当前week的第一天:
    8.  
      select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 1 DAY);
    9.  
       
    10.  
      #当前week的最后一天:
    11.  
      select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) - 5 DAY);
    12.  
       
    13.  
      #前一week的第一天:
    14.  
      select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 8 DAY);
    15.  
       
    16.  
      #前一week的最后一天:
    17.  
      select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 2 DAY);
    18.  
       
    19.  
      #前两week的第一天:
    20.  
      select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 15 DAY);
    21.  
       
    22.  
      #前两week的最后一天:
    23.  
      select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 9 DAY);
    24.  
       
    25.  
      #当前month的第一天:
    26.  
      SELECT concat(date_format(LAST_DAY(now()),'%Y-%m-'),'01');
    27.  
       
    28.  
      #当前month的最后一天:
    29.  
      SELECT LAST_DAY(now());
    30.  
       
    31.  
      #前一month的第一天:
    32.  
      SELECT concat(date_format(LAST_DAY(now() - interval 1 month),'%Y-%m-'),'01');
    33.  
       
    34.  
      #前一month的最后一天:
    35.  
      SELECT LAST_DAY(now() - interval 1 month);
    36.  
       
    37.  
      #前两month的第一天:
    38.  
      SELECT concat(date_format(LAST_DAY(now() - interval 2 month),'%Y-%m-'),'01');
    39.  
       
    40.  
      #前两month的最后一天:
    41.  
      SELECT LAST_DAY(now() - interval 2 month);
    42.  
       
    43.  
      #当前quarter的第一天:
    44.  
      select concat(date_format(LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-3 month),'%Y-%m-'),'01');
    45.  
       
    46.  
      #当前quarter的最后一天:
    47.  
      select LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-1 month);
    48.  
       
    49.  
      #前一quarter的第一天:
    50.  
      select concat(date_format(LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-6 month),'%Y-%m-'),'01');
    51.  
       
    52.  
      #前一quarter的最后一天:
    53.  
      select LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-4 month);
    54.  
       
    55.  
      #前两quarter的第一天:
    56.  
      select concat(date_format(LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-9 month),'%Y-%m-'),'01');
    57.  
       
    58.  
      #前两quarter的最后一天:
    59.  
      select LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-7 month);
  • 相关阅读:
    彻底理解c++的隐式类型转换
    golang1.16新特性速览
    配置CLion管理Qt项目国际化支持
    一道有趣的golang排错题
    计算机视觉 / 二维空间中,如何判断点在不在某个封闭图形内?
    如何使用google搜索?
    shuffle实现 / 洗牌算法
    Linux 命令行界面下,好玩的东西
    LAB5 Shell、外存管理与操作
    LAB6 网络通信 、 网卡驱动
  • 原文地址:https://www.cnblogs.com/xiangzideheiniu/p/12579479.html
Copyright © 2011-2022 走看看