免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7670 | 回复: 8
打印 上一主题 下一主题

请高手相助在db2中计算给定日期的季初日期怎么算啊 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-06-10 17:01 |只看该作者 |倒序浏览
请高手相助在db2中计算给定日期的季初日期怎么算啊

论坛徽章:
0
2 [报告]
发表于 2008-06-10 17:33 |只看该作者
什么意思,没看明白呢

论坛徽章:
11
数据库技术版块每日发帖之星
日期:2016-06-25 06:20:00数据库技术版块每日发帖之星
日期:2016-06-24 06:20:00数据库技术版块每日发帖之星
日期:2016-05-03 06:20:00数据库技术版块每日发帖之星
日期:2016-04-21 06:20:00数据库技术版块每日发帖之星
日期:2016-01-23 06:20:00数据库技术版块每日发帖之星
日期:2015-12-03 06:20:00综合交流区版块每周发帖之星
日期:2015-12-02 15:03:53数据库技术版块每日发帖之星
日期:2015-10-19 06:20:00数据库技术版块每日发帖之星
日期:2015-08-20 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:15数据库技术版块每日发帖之星
日期:2016-07-30 06:20:00
3 [报告]
发表于 2008-06-11 13:11 |只看该作者
根据日期判断该日期所在季度的第一天是几号?

论坛徽章:
0
4 [报告]
发表于 2008-06-12 21:52 |只看该作者
是的,大梦有没有什么好办法

论坛徽章:
11
数据库技术版块每日发帖之星
日期:2016-06-25 06:20:00数据库技术版块每日发帖之星
日期:2016-06-24 06:20:00数据库技术版块每日发帖之星
日期:2016-05-03 06:20:00数据库技术版块每日发帖之星
日期:2016-04-21 06:20:00数据库技术版块每日发帖之星
日期:2016-01-23 06:20:00数据库技术版块每日发帖之星
日期:2015-12-03 06:20:00综合交流区版块每周发帖之星
日期:2015-12-02 15:03:53数据库技术版块每日发帖之星
日期:2015-10-19 06:20:00数据库技术版块每日发帖之星
日期:2015-08-20 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:15数据库技术版块每日发帖之星
日期:2016-07-30 06:20:00
5 [报告]
发表于 2008-06-13 10:14 |只看该作者
quarter(current date)能返回季度1,2,3,4,你直接再写个case去判断一下吧!

论坛徽章:
0
6 [报告]
发表于 2008-06-13 16:13 |只看该作者
在存储过程中case语句怎么写,在网上查了很多资料都没找到答案!存储过程的资料怎么这么少啊

论坛徽章:
0
7 [报告]
发表于 2008-06-13 17:45 |只看该作者
EXAMPLE:
SELECT Lastname ,sex AS sx
,CASE sex
WHEN ’F’ THEN ’FEMALE’
WHEN ’M’ THEN ’MALE’
ELSE NULL
END AS sexx
FROM employee
WHERE lastname LIKE ’J%’
ORDER BY 1;

论坛徽章:
0
8 [报告]
发表于 2008-06-17 21:39 |只看该作者
我是要运算后把季初日期的值赋给变量,该怎么写

论坛徽章:
0
9 [报告]
发表于 2011-06-24 14:37 |只看该作者
我封装了一个函数,此函数传入varchar(10),传出类型为DATE,此函数返回季初日期 (DB2)
  1. create function GETSESSIONBEGIN (INPUT_DATE VARCHAR(10))
  2. RETURNS DATE

  3. BEGIN ATOMIC
  4.    DECLARE L_STATISTICDATE DATE;                --传入日期转换为DATE类型
  5.    DECLARE S_STATISTICDATE DATE;                --季初日期,作为返回值
  6.    DECLARE IN_SESSION INT;                      --用来接收传入日期所在的季度

  7.    SET L_STATISTICDATE = DATE(INPUT_DATE);      --把传入日期转换为日期类型(为了严谨)
  8.    SET IN_SESSION = QUARTER(L_STATISTICDATE);   --取传入日期所在季度,返回INT类型

  9.    --判断是哪个季度,直接定季初日期
  10.    --如果是第一季度返回本年一月一日
  11.    IF IN_SESSION = 1 THEN
  12.        SET S_STATISTICDATE = DATE(TRIM(CHAR(YEAR(L_STATISTICDATE)))||'-01-01');
  13.    END IF;

  14.    --如果是第二季度返回本年四月一日
  15.    IF IN_SESSION = 2 THEN
  16.        SET S_STATISTICDATE = DATE(TRIM(CHAR(YEAR(L_STATISTICDATE)))||'-04-01');
  17.    END IF;

  18.    --如果是第三季度返回本年七月一日
  19.    IF IN_SESSION = 3 THEN
  20.        SET S_STATISTICDATE = DATE(TRIM(CHAR(YEAR(L_STATISTICDATE)))||'-07-01');
  21.    END IF;
  22.    
  23.    --如果是第四季度返回本年十月一日
  24.     IF IN_SESSION = 4 THEN
  25.         SET S_STATISTICDATE = DATE(TRIM(CHAR(YEAR(L_STATISTICDATE)))||'-10-01');
  26.     END IF;
  27.    
  28.     RETURN S_STATISTICDATE;
  29.    
  30. END
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP