首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle SQL -最近12个月的完整数据

问Oracle SQL -最近12个月的完整数据
EN

Stack Overflow用户
提问于 2016-09-30 22:58:04
回答 2查看 26.7K关注 0票数 2

我需要一个查询,将动态拉取过去12个月的装运数据(不包括当前月)。因此,由于今天是2016年9月30日,我需要2015年9月1日到2016年8月31日的数据。明天,查询将更改为10-1-15到9-30-16的日期范围。

这是我目前所拥有的:

代码语言:javascript
复制
WHERE (shipdate BETWEEN TRUNC(sysdate, 'Year') AND sysdate)

此查询从日历年开始到今天的日期提取数据,而不是前12个完整的月份。我已经用MySQL和MS SQL Server找到了这个问题的答案,但甲骨文找不到。如何在Oracle中实现这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-30 23:00:33

代码语言:javascript
复制
between add_months(trunc(sysdate, 'month'), -12) and trunc(sysdate, 'month')

如果发货的时间戳实际上是午夜,而发货的时间戳是9月1不应包含在00:00:00,则“介于”应更改为

代码语言:javascript
复制
shipdate >= add_months(trunc(sysdate, 'month'), - 12) 
                               and shipdate < trunc(sysdate, 'month')
票数 5
EN

Stack Overflow用户

发布于 2016-09-30 23:11:55

假设您有一个包含日期列表的表,例如过去1000天:

代码语言:javascript
复制
create table tableTest(shipDate) as
(
    select trunc(sysdate) - level +1
    from dual
    connect by level < 1000
)

您可以使用以下内容:

代码语言:javascript
复制
select min(shipdate), max(shipdate)
from tableTest
where shipDate between trunc(add_months(sysdate, -12), 'MONTH') and TRUNC(sysdate, 'MONTH') -1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39794468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档