mysql monday event_MySQL获取日期周、月、天,生成序号
MySQL時間格式化:??%Y-%m-%d %H:%i:%s.%f
SELECT DATE_FORMAT('2020-04-12 15:23:16.463','%Y-%m-%d %H:%i:%s.%f')
2020-04-12 15:23:16.463000
SELECT @cdate := date_add(@cdate, interval - 1 day) as date?FROM(SELECT @cdate := date_add(date_sub(CURDATE(),interval 1 DAY), interval + 1 DAY)?from resource_publish) t0 LIMIT 7
SELECT @cdate := date_add(@cdate, interval - 1 day) as date_str?FROM(SELECT @cdate := date_add(CURDATE(), interval + 1 DAY) from resource_publish) t0 LIMIT 7
SELECT @cdate := date_add(@cdate, interval - 1 day) as date_str?FROM(SELECT @cdate := date_add('20200402', interval + 1 DAY) from resource_publish) t0 LIMIT 7
SELECT @cdate := date_add(@cdate, interval - 1 MONTH) as date_str?FROM(SELECT @cdate := date_add(CURDATE(), interval + 1 MONTH) from resource_publish) t0 LIMIT 12
-- 查詢最近七個月每月一號
SELECT @cdate := date_add(@cdate, interval - 1 MONTH) as daytime FROM(SELECT @cdate := date_add(date_sub(CURDATE(),interval 1 MONTH), interval + 1 MONTH)?from view_wl018_mx) t0 LIMIT 7;
-- 查詢最近七個月每月月末
SELECT @lastDay := last_day( date_add(@lastDay,interval 1 month )) lastDays?from (SELECT @lastDay := date_add(curdate(),interval -6 month) from view_wl018_mx limit 6) a;
-- 查詢最近七月的月份
SELECT date_format(@lastDay := last_day( date_add(@lastDay,interval 1 month ) ) ,'%Y-%m' ) lastDays?from (SELECT @lastDay := date_add(curdate(),interval -6 month) from view_wl018_mx limit 6) a;
-- 獲取當年所有月份
SELECT date_format(@lastDay := last_day(date_add(@lastDay,interval 1 month)) ,'%Y-%m') lastDays from (SELECT @lastDay := date_add(curdate(),interval -MONTH(curdate()) month) from view_wl018_mx LIMIT 12) a;
-- 獲取當年所有月份
SELECT CASE WHEN length(mon) = 1 THEN concat(LEFT (CURRENT_DATE, 5),'0',mon)??ELSE concat(LEFT(CURRENT_DATE, 5), mon) END months
FROM (SELECT @m :=@m + 1 mon FROM view_wl018_mx,(SELECT @m := 0) a) aa LIMIT 12;
-- 獲取當年第一個月份
SELECT date_format(date_sub(date_sub(curdate(),interval day(curdate()) - 1 day),interval MONTH(CURDATE())-1 month),'%Y-%m');
-- 上月月份
select extract(YEAR_MONTH from date_add(NOW(), interval -1 month));
-- 上年月份
select extract(YEAR_MONTH from date_add(NOW(), interval -1 year));
SELECT * FROM(
SELECT daystr,WEEKDAY(daystr) AS wd FROM(
SELECT @cdate := date_add(@cdate, interval - 1 day) as daystr
FROM(SELECT @cdate := date_add(date_sub(CURDATE(),interval 1 DAY), interval + 1 DAY)
from tb_name ) t0 LIMIT 14) ds) aa WHERE wd!='5' AND wd!='6' -- 查看最近兩周內的工作日
set @rownum=0; select @rownum:=@rownum+1 as rownum
select (@i:=@i+1) as rownum FROM (select @i:=0) as rn -- 和其他列組合自動生成序號
select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 35 DAY); -- 獲取六周前的周一
select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 0 DAY); -- 獲取當前周所在的周一
select date_sub('2020-02-28',INTERVAL WEEKDAY('2020-02-28') - 6 DAY); -- 獲取當前周所在的周日
SELECT date_add(DATE_ADD(curdate(),interval -day(curdate())+1 day),interval -6 month) -- 獲取六個月前第一天
SELECT DATE_ADD(curdate(),interval -day(curdate())+1 day); -- 獲取當月第一天
WEEK(date[,mode])函數
此函數返回日期的周數。雙參數的形式WEEK()允許你指定星期是否開始于周日或周一,以及是否返回值應在范圍從0到53或從1到53。 如果省略了mode參數,系統default_week_format變量的值被使用。
SELECT WEEK(curdate(),1)
WEEKOFYEAR(date)
返回日期用數字表示的范圍是從1到53的日歷周。WEEKOFYEAR()是一個兼容性函數,它等效于WEEK(date,3)。
SELECT WEEKOFYEAR('2020-3-29');
YEARWEEK 是獲取年份和周數的一個函數,函數形式為 YEARWEEK(date[,mode])
SELECT YEARWEEK('2020-3-29');
date_format(date,'%u')
%U 周 (01-53) 星期日是一周的第一天
%u 周 (01-53) 星期一是一周的第一天
DAYOFWEEK 轉換日期為周幾的函數,1 = Sunday, 2 = Monday,..., 7 = Saturday
select DAYOFWEEK('2020-04-05'); -- 周日為 1
SELECT dayofweek(now()); -- 查看當日是周幾
select date_sub(curdate(),interval 1 day) -- 獲取前一天日期
#當年第一天:
SELECT DATE_SUB(CURDATE(),INTERVAL dayofyear(now())-1 DAY);
#當年最后一天:
SELECT concat(YEAR(now()),'-12-31');
#當前week的第一天:
select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 1 DAY);
#當前week的最后一天:
select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) - 5 DAY);
#前一week的第一天:
select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 8 DAY);
#前一week的最后一天:
select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 2 DAY);
#前兩week的第一天:
select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 15 DAY);
#前兩week的最后一天:
select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 9 DAY);
select curdate(); --獲取當前日期
select last_day(curdate()); --獲取當月最后一天。
select DATE_ADD(curdate(),interval -day(curdate())+1 day); --獲取本月第一天
select date_add(curdate(), interval - day(curdate()) + 1 day);?--獲取本月第一天
select extract(YEAR_MONTH from date_add(NOW(), interval -1 month));?--獲取本月第一天
-- 上月第一天
select date_sub(date_sub(date_format(now(),'%Y-%m-%d'),interval extract(day from now())-1 day),interval 1 month);
SELECT date_sub(date_sub(curdate(),interval day(curdate()) - 1 day),interval 1 month);
-- 獲取上月月份
SELECT date_format(date_sub(date_sub(curdate(),interval day(curdate()) - 1 day),interval 1 month),'%Y-%m');
select date_format(date_sub(date_sub(curdate(),interval day(curdate()) - 1 day),interval month(curdate())-1 month),'%y-%m');
select date_format(date_add(curdate(),interval -1 month),'%y-%m')
select date_add(curdate()-day(curdate())+1,interval 1 month); -- 獲取下個月的第一天
select DATEDIFF(date_add(curdate()-day(curdate())+1,interval 1 month ),DATE_ADD(curdate(),interval -day(curdate())+1 day)) from dual; --獲取當前月的天數
#當前month的第一天:
SELECT concat(date_format(LAST_DAY(now()),'%Y-%m-'),'01');
#當前month的最后一天:
SELECT LAST_DAY(now());
#前一month的第一天:
SELECT concat(date_format(LAST_DAY(now() - interval 1 month),'%Y-%m-'),'01');
#前一month的最后一天:
SELECT LAST_DAY(now() - interval 1 month);
#前兩month的第一天:
SELECT concat(date_format(LAST_DAY(now() - interval 2 month),'%Y-%m-'),'01');
#前兩month的最后一天:
SELECT LAST_DAY(now() - interval 2 month);
#當前quarter的第一天:
select concat(date_format(LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-3 month),'%Y-%m-'),'01');
#當前quarter的最后一天:
select LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-1 month);
#前一quarter的第一天:
select concat(date_format(LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-6 month),'%Y-%m-'),'01');
#前一quarter的最后一天:
select LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-4 month);
#前兩quarter的第一天:
select concat(date_format(LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-9 month),'%Y-%m-'),'01');
#前兩quarter的最后一天:
select LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-7 month);
SELECT CONCAT(#{year},'-01') AS date UNION
SELECT CONCAT(#{year},'-02') AS date UNION
SELECT CONCAT(#{year},'-03') AS date UNION
SELECT CONCAT(#{year},'-04') AS date UNION
SELECT CONCAT(#{year},'-05') AS date UNION
SELECT CONCAT(#{year},'-06') AS date UNION
SELECT CONCAT(#{year},'-07') AS date UNION
SELECT CONCAT(#{year},'-08') AS date UNION
SELECT CONCAT(#{year},'-09') AS date UNION
SELECT CONCAT(#{year},'-10') AS date UNION
SELECT CONCAT(#{year},'-11') AS date UNION
SELECT CONCAT(#{year},'-12') AS date
-- mysql 查詢百分占比,1.字段里嵌套子查詢統計總數,2.嵌套臨時表統計總數,3.設置臨時變量統計總數
SET @sum=(SELECT sum(count) FROM resource_repeatrate);
SELECT `count`,ROUND((count(`count`)/@sum*100),2) AS ct FROM resource_repeatrate GROUP BY `count` ORDER BY ct DESC;
MySQL判空函數:
IFNULL(expr,expr) 處理如果字段為空,返回默認值,sum是統計求和,
IFNULL(SUM(expr1),expr2) 是統計求和之后為空返回默認值
SUM(IFNULL(expr1,expr2)) 是判斷字段為空返回默認值再求和
作者:Jason Zeng 于 2020-05-14
博客:http://www.cnblogs.com/zengming/ https://blog.csdn.net/Z645817
GItHub:https://github.com/lovelifeming
嚴正聲明:
1.由于本博客部分資源來自互聯網,版權均歸原作者所有。轉載的目的是用于學術交流與討論學習,將不對任何資源負法律責任。
2.若無意中侵犯到您的版權利益,請來信聯系我,我會在收到信息后會盡快給予處理!
3.所有資源內容僅供學習交流之用,請勿用作商業用途,謝謝。
4.如有轉發請注明出處,來源于http://www.cnblogs.com/zengming/ https://blog.csdn.net/Z645817,謝謝合作。
總結
以上是生活随笔為你收集整理的mysql monday event_MySQL获取日期周、月、天,生成序号的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 二进制安装卸载_MySQL二
- 下一篇: python和docker交互_jupy