如何计算Teradata下个月开始的上个月数据

时间:2015-06-03 15:42:57

标签: teradata

我使用下面的条件显示当前月/上个月的数据(如果新月开始)。 让我们说今天是6月3日所以它应该只给第一个第二个数据,如果它应该给出1到9的数据,同样它应该是这样直到月末,但是下个月的第一个月它应该提供上个月的数据。我使用的条件是每隔一天给出空白数据。 。这是我正在使用的条件:

where Datestarted between CURRENT_DATE - EXTRACT( DAY FROM CURRENT_DATE) + 1 
     AND 
    ADD_MONTHS(( CURRENT_DATE - EXTRACT (DAY FROM CURRENT_DATE) + 1), 1) - 1 

2 个答案:

答案 0 :(得分:1)

您可能需要根据昨天的计算而不是今天:

where Datestarted between (CURRENT_DATE-1) - EXTRACT( DAY FROM CURRENT_DATE-1) + 1 
     AND 
   CURRENT_DATE-1 

答案 1 :(得分:0)

您是否意味着上个月到目前为止

Try this:
select
calendar_date
from
sys_calendar.calendar
where
calendar_date between cast((ADD_MONTHS(CURRENT_DATE,-1)/100*100)+1 as DATE) and
  add_months(current_date,-1)-1

编辑:根据您的意见,让我们试试这个:

SELECT
calendar_date
FROM
sys_calendar.CALENDAR
WHERE 
(EXTRACT(DAY FROM CURRENT_DATE) = 1 --previous month
 AND
    Calendar_Date BETWEEN CAST((ADD_MONTHS(CURRENT_DATE, - 1)/100 * 100) + 1 AS DATE)
        AND CURRENT_DATE - EXTRACT(DAY FROM CURRENT_DATE))
OR--current mtd
 (
 Calendar_Date BETWEEN CAST((CURRENT_DATE / 100 * 100) + 1 AS DATE)
        AND CURRENT_DATE - 1  
)
ORDER BY calendar_date