DB2中一个月的天数

sg2wtvxw  于 2022-11-07  发布在  DB2
关注(0)|答案(3)|浏览(315)

在DB2中,有没有一种方法可以找到一个月的天数?例如,我有一个日期时间字段,显示为Jan-2020、Feb-2020等等。根据这个字段,我需要获取那个月的天数。输出应该如下表所示:
我正在使用下面的查询
select reportdate, TO_CHAR(reportdate, 'Mon-YYYY') as textmonth from mytable
预期产出

ReportDate       textMonth   No of Days
1-1-2020 08:00   Jan-2020      31
1-2-2020 09:00    Feb-2020     29
12-03-2020 07:00  Mar-2020     31
idfiyjo8

idfiyjo81#

试试看:

/*
WITH MYTABLE (reportdate) AS 
(
VALUES
  TIMESTAMP('2020-01-01 08:00:00')
, TIMESTAMP('2020-02-01 09:00:00')
, TIMESTAMP('2020-03-12 07:00:00')
)

* /

SELECT reportdate, textMonth, DAYS(D + 1 MONTH) - DAYS(D) AS NO_OF_DAYS
FROM
(
SELECT 
  reportdate, TO_CHAR(reportdate, 'Mon-YYYY') textMonth
, DATE(TO_DATE('01-' || TO_CHAR(reportdate, 'Mon-YYYY'), 'dd-Mon-yyyy')) D
FROM MYTABLE
);
b4lqfgs4

b4lqfgs42#

Db2有函数DAYS_TO_END_OF_MONTH和其他几个你可以使用的函数。根据你输入的月份,构造月份的第一天。这应该像2020-01-01表示Jan-2020或2020-02-01表示Feb-2020。跟随链接,获得其他几个转换函数,这些函数允许你在格式之间转换并执行日期算术。

kxe2p93d

kxe2p93d3#

将您列转换为正确的日期,然后尝试以下操作:day(最后一天(日期列))

相关问题