Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4154438
  • 博文数量: 240
  • 博客积分: 11504
  • 博客等级: 上将
  • 技术积分: 4277
  • 用 户 组: 普通用户
  • 注册时间: 2006-12-28 14:24
文章分类

全部博文(240)

分类: Mysql/postgreSQL

2013-06-20 15:55:36

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



点击(此处)折叠或打开

  1. DELIMITER $$




  2. USE `t_girl`$$




  3. DROP FUNCTION IF EXISTS `weekofmonth`$$




  4. CREATE DEFINER=`root`@`localhost` FUNCTION `weekofmonth`(
  5.     f_datetime DATETIME
  6.     ) RETURNS INT(11)
  7. BEGIN
  8.    -- Created by ytt.




  9.     DECLARE v_result INT;
  10.     DECLARE v_weekno INT;
  11.     SET v_weekno =
  12.     CASE DAYOFWEEK(f_datetime)
  13.     WHEN 1 THEN 7
  14.     WHEN 2 THEN 1
  15.     WHEN 3 THEN 2
  16.     WHEN 4 THEN 3
  17.     WHEN 5 THEN 4
  18.     WHEN 6 THEN 5
  19.     WHEN 7 THEN 6
  20.     END;
  21.     SET v_result = CEIL(DAYOFMONTH(DATE_SUB(f_datetime,INTERVAL v_weekno DAY))/7)+1;
  22.     RETURN v_result;
  23.       
  24.     END$$




  25. DELIMITER ;






演示下结果:


SELECT weekofmonth(NOW()) AS result;


query result:


result
4
阅读(3766) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~