DB2 SQL只从日期列中提取月份和年份

dgenwo3n  于 2022-11-07  发布在  DB2
关注(0)|答案(2)|浏览(267)

我尝试从MGMOV 00 F表中按月份和年份分组-日期列是DTMOMM,尝试以下语法,但仍然出现错误:函数年份参数1无效,请帮助?

8fq7wneg

8fq7wneg1#

你确定你处理的是一个实际的日期数据类型吗?
给定WHERE DT01MM > '20160101'
在我看来,您处理的是字符列;因为AFAIKDB 2不会像'2016-01-01'那样隐式地将'20160101'转换为日期。
既然如此,你的任务就很简单了。只需将前6个字符串成子串。

oiopk7p5

oiopk7p52#

选择按匹配数排序的月-年(m-yyyy)计数:

SELECT valid_from, COUNT(1) FROM (
    SELECT ( 
        EXTRACT(MONTH FROM valid_from) 
        CONCAT '-' CONCAT
        EXTRACT(YEAR FROM valid_from)
    ) AS valid_from
    FROM some_table NOLOCK
) as s 
GROUP BY s.valid_from 
ORDER BY 2 DESC;

结果:

相关问题