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

2025-03-09 09:01:42
推荐回答(2个)
回答1:

首先, 你可以先使用  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  (   上一步骤取得的  日期类型的数据  )  来获取   具体的 月的数值。

回答2:

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