【原创】MySQL里求给定的时间是所在月份的第几个礼拜

Share 一个昨天写的函数。 目的是求给定的时间是所在月份的第几个礼拜。


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
DELIMITER $$
USE `t_girl`$$
DROP FUNCTION IF EXISTS `weekofmonth`$$
CREATE DEFINER=`root`@`localhost` FUNCTION `weekofmonth`(
    f_datetime DATETIME
    RETURNS INT(11)
BEGIN
   -- Created by ytt.
    DECLARE v_result INT;  
    DECLARE v_weekno INT;
    SET v_weekno =
    CASE DAYOFWEEK(f_datetime)
    WHEN THEN 7
    WHEN THEN 1
    WHEN THEN 2
    WHEN THEN 3
    WHEN THEN 4
    WHEN THEN 5
    WHEN THEN 6
    END;
    SET v_result = CEIL(DAYOFMONTH(DATE_SUB(f_datetime,INTERVAL v_weekno DAY))/7)+1;
    RETURN v_result;
    END$$
DELIMITER ;



演示下结果:


SELECT weekofmonth(NOW()) AS result;


query result:


result

4




本文转自 david_yeung 51CTO博客,原文链接:http://blog.51cto.com/yueliangdao0608/1225905,如需转载请自行联系原作者

上一篇:从机器人到 VR,来见识下全球 13 家高科技酒店|新奇酷


下一篇:这家公司建了世界上首个机器人农场,每天给你生产3万棵生菜|新奇酷