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);
posted on 2020-03-27 09:59  祥子的黑妞  阅读(302)  评论(0编辑  收藏  举报