DB2 数据日期字段为varchar字段想取出月份进行比较

DB2数据库日期字段为varchar值为2013/01/01想取出月份简单的说想取出月份进行比较取出1-3月,3-6月,6-9月,9-12月份的数据DATEDIFF这个函... DB2 数据库日期字段为varchar 值为2013/01/01想取出月份 简单的说想取出月份进行比较取出1-3月,3-6月,6-9月,9-12月份的数据 DATEDIFF这个函数我用不了不知道是什么原因,求大神解答。。。 展开
 我来答
匿名用户
2014-01-16
展开全部

首先, 你可以先使用  TO_DATE 函数, 把  varchar  类型的数据, 转换为  日期类型的。

例如:



db2 => SELECT
db2 (cont.) =>   TO_DATE('2011.10.01', 'YYYY.MM.DD')
db2 (cont.) => FROM SYSIBM.SYSDUMMY1;

1
--------------------------
2011-10-01-00.00.00.000000

  1 条记录已选择。

然后, 使用   MONTH  (   上一步骤取得的  日期类型的数据  )  来获取   具体的 月的数值。

小狂中E
推荐于2016-01-06 · TA获得超过1418个赞
知道大有可为答主
回答量:1514
采纳率:66%
帮助的人:1033万
展开全部
with t1(m, d) as (
    select '2013/01/13', 10000 from sysibm.sysdummy1

    union all select '2013/01/03', 5000 from sysibm.sysdummy1

    union all select '2013/02/03', 5000 from sysibm.sysdummy1

    union all select '2013/04/03', 5000 from sysibm.sysdummy1

    union all select '2013/11/03', 5000 from sysibm.sysdummy1

),

t2(m,d) as (
    select case when substr(m,6,2) in ('01','02','03') then '1-3月'

            when substr(m,6,2) in ('04','05','06') then '4-6月'

            when substr(m,6,2) in ('07','08','09') then '7-9月'

            else '10-12月' 
       end, d 
    from t1
)

select m, sum(d) 

from t2

group by m
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式