DB2 - 根据当月的天数选择值

时间:2016-07-19 14:02:58

标签: db2

我有下面的表格。

TABLE NAME(问题):

ID  ISSUE_ID  CREATED_DATE 
1   101       15 July 2016 
2   102       13 July 2016 
3   103       10 July 2016 
4   104       8 July 2016  
5   103       7 July 2016  
6   104       19 June 2016 
7   103       10 June 2016 
8   104       1 June 2016  

我想根据当月的天数检索在过去30/31/28天内打开的问题数(计数)。

例如, 在7月份,我们有31天,所以我想检索在过去31天内打开的问题。

如果是6月,我们只有30天,所以我必须检索过去30天内打开的问题。

在DB2中,可以通过

检索本月的天数
DAY(LAST_DAY(DATE(current timestamp)))

我仍然对如何将其应用于查询感到困惑。 我对查询的了解非常有限。

提前致谢。

以下查询无效。

SELECT 
  count(*)
  FROM issues
WHERE
  MONTH(CREATED_DATE) > (MONTH( DATE(current timestamp) ) - 1 MONTH)
  AND 
  DAY(DATE (CREATED_DATE)) > DAY(DATE(current timestamp))

2 个答案:

答案 0 :(得分:1)

您可以在值中替换天数。

基本回到时间选择

select * from sometable where somedate > current date - 31 days

及时退出使用函数选择天数。

select * from sometable where somedate > current date -

DAY(LAST_DAY(DATE(current timestamp))) days

但是我们大多数人选择了一个月的月份

select * from sometable where somedate > current date - 1 months

注意:我发现后N天有用的唯一地方是周一或假期从周末抽出东西。

答案 1 :(得分:0)

你可以试试这个。

SELECT 
  count(*)
  FROM issues
WHERE CREATED_DATE>DAY(LAST_DAY(CURRENT_DATE))

如果CREATED_DATE不是日期格式。试试这个

SELECT 
count(*)
FROM issues
WHERE TO_DATE('CREATED_DATE', 'DD MONTH YYYY')>DAY(LAST_DAY(CURRENT_DATE))