【发布时间】:2019-05-13 12:52:11
【问题描述】:
我有以下要求。
假设我在 15-APR-2019 上运行查询,那么我应该得到 4th quarter 2018(01-OCT-18 to 31-DEC-18) 的数据。如果我在15-MAY-2019 上运行查询,我应该得到1st quarter of 2019(01-JAN-2019 to 31-MAR-2019) 的数据。
表示如果季度末数据和当前日期相差 30 天,那么我应该得到上一季度的数据。但如果相差不到 30 天,我应该得到上一季度的数据。
表示如果
I run on 15-APR-2019 data should be of (01-OCT-2018 to 31-DEC-2018)
I run on 01-APR-2019 data should be of (01-OCT-2018 to 31-DEC-2018)
I run on 01-MAY-2019 data should be of (01-JAN-2019 to 31-MAR-2019)
I run on 01-JUN-2019 data should be of (01-JAN-2019 to 31-MAR-2019)
我怎样才能把这个标准放在 where 子句中。我们必须根据sysdate 计算数据,并且必须按存储在数据库中的日期进行比较。
【问题讨论】:
-
这是一个简单的问题,您只需要使用 CASE 语句即可。你在哪里遇到问题?请记住,这里唯一改变的部分是年份。
-
我如何计算 30 天然后将“输出中的逻辑之间”并与 = 条件进行比较。你能帮我语法吗
-
你的意思是 30 天,还是一个月?
标签: sql oracle plsql database-administration date-arithmetic