用mysql直接生成日历

楼主
我是社区第66158位番薯,欢迎点我头像关注我哦~
  1. BEGIN

  2. DECLARE num int DEFAULT -1;
  3. CREATE TEMPORARY TABLE under_日历 (
  4.       yyyy int,
  5.                         q int,
  6.       mm int,
  7.                         dd VARCHAR(15),
  8.                         w INT,
  9.                         wd VARCHAR(15)
  10.   );
  11.     lp:LOOP
  12.         set num = num+1;
  13.                                 insert into under_日历
  14. select year(CURDATE()) as y,
  15. floor((date_format(DATE_ADD(DATE_SUB(CURDATE(),INTERVAL dayofyear(now())-1 DAY), INTERVAL num DAY),'%m')+2)/3) as q,
  16. date_format(DATE_ADD(DATE_SUB(CURDATE(),INTERVAL dayofyear(now())-1 DAY), INTERVAL num DAY),'%m') as M,
  17. date_format(DATE_ADD(DATE_SUB(CURDATE(),INTERVAL dayofyear(now())-1 DAY), INTERVAL num DAY),'%Y-%m-%d') as date,
  18. date_format(DATE_ADD(DATE_SUB(CURDATE(),INTERVAL dayofyear(now())-1 DAY), INTERVAL num DAY),'%u') as W,
  19. case DAYOFWEEK(date_format(DATE_ADD(DATE_SUB(CURDATE(),INTERVAL dayofyear(now())-1 DAY), INTERVAL num DAY),'%Y-%m-%d'))-1
  20. when 1 then '星期一'
  21. when 2 then '星期二'
  22. when 3 then '星期三'
  23. when 4 then '星期四'
  24. when 5 then '星期五'
  25. when 6 then '星期六'
  26. when 0 then '星期日'
  27. end as DW;
  28.   if num=dayofyear(concat(YEAR(now()),'-12-31'))-1 THEN LEAVE lp;
  29.         END if;
  30.     END LOOP;
  31. select * from under_日历;
  32. DROP TABLE under_日历;
  33. END
复制代码
刚刚看到个帖子是用帆软来做日历的(http://bbs.fanruan.com/thread-122813-1-1.html),然后就想起来自己以前做过类似的,直接用sql生成本年日历
直接放在存储过程里运行年,季度,月,日,周,星期就都出来了
编辑于 2019-1-17 10:57  
分享扩散:
参与人数 +1 F豆 +30 理由
啊哈 + 30 默默地点个赞,然后闪人

查看全部评分

沙发
发表于 2019-1-17 10:54:12
板凳
发表于 2019-1-17 10:56:32
楼主上一个效果图看看呢
地板
发表于 2019-1-17 10:56:51
传说哥 发表于 2019-1-17 10:56
楼主上一个效果图看看呢

好嘞
5楼
发表于 2019-1-17 17:39:47
6楼
发表于 2019-1-17 18:02:47
学习
7楼
发表于 2019-1-18 11:40:07
不错不错捧个场
8楼
发表于 2020-4-14 19:02:37
num = dayofyear(
                                concat( YEAR ( now()), '-12-31' ))-4`1234567890-/*--*/\][POSITION(substr IN str)1 THEN
                                LEAVE lp;


这里的[POSITION(substr IN str)1是什么意思
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部 返回列表