mysql 去年同星期_Mysql自定义函数返回去年同周的周一

mysql自定义函数

## 返回in_day 所在周的星期一的日期

DELIMITER $$

CREATE FUNCTION get_first_day_of_week(in_day DATE)

RETURNS DATE

BEGIN

DECLARE l_numofweek  INT;

DECLARE l_dayofweek  DATE;

SET l_numofweek = (DAYOFWEEK(in_day) - 2 + 7) % 7;

SET l_dayofweek = DATE_SUB(in_day , INTERVAL l_numofweek DAY );

RETURN l_dayofweek;

END;

$$

DELIMITER ;

##  i_day为一年中的第n周

##  返回去年的第n周的周一的日期

DELIMITER $$

CREATE FUNCTION get_first_of_week_last_year (i_day DATE) RETURNS DATE

BEGIN

DECLARE l_week_of_year INT ;

DECLARE l_last_year VARCHAR (100) ;

DECLARE l_day DATE ;

SET l_week_of_year = WEEKOFYEAR(i_day) ;

SET l_last_year = CONCAT(

(DATE_FORMAT(i_day, '%Y') - 1),

'-01-01'

) ;

SET l_day = STR_TO_DATE(l_last_year, '%Y-%m-%d') ;

SET l_day = get_first_day_of_week (l_day) ;

SET l_day = DATE_ADD(

l_day,

INTERVAL l_week_of_year - 1 WEEK

) ;

RETURN l_day ;

END ;

$$

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29121762/viewspace-1672044/,如需转载,请注明出处,否则将追究法律责任。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值