复杂的日期范围

时间:2015-10-29 17:40:45

标签: oracle date range between

我正在处理以下查询,无法弄清楚它的最后一部分。我需要我的查询给我一个上一个业务和前一个工作日减去( - )28天之间的结果集。 (例如2015年10月28日到2015年10月28日-28之间的日期范围)到目前为止我写的查询只给了我第-28天(2015年9月30日)而不是之前的业务范围当天和前一个工作日-28。我的研究显示了几种不同的方法,到目前为止没有一种方法可以帮助我。

SELECT SMBL, SUM(NET_FLOWS/1000000.00) 
FROM HISTORY
WHERE DATE - 28 = DATE AND DATE = TO_DATE('10282015','MMDDYYYY') 
AND SYMBOL IN ('AAA','BBB')
GROUP BY SMBL 

1 个答案:

答案 0 :(得分:0)

首先,使用BETWEEN可以轻松完成日期范围,因此您可以快速解决问题:

WHERE DATE BETWEEN (SYSDATE-28) and (SYSDATE-1)

然后你意识到你的日期有时间成分,所以要包括所有的昨天和28天所有你需要:

WHERE DATE >= TRUNC(SYSDATE)-28 
AND   DATE < TRUNC(SYSDATE)

然后我看看你的规则&#34;前一个工作日&#34;并问 - 你的工作日是什么时候?在星期一上一个星期五?还是周六?或者你是一个每周7天的生意?法定假日怎么样?那是28日历吗?或28个工作日?

啊,业务规则。魔鬼总是在那些细节中......