创建包含年日的视图

发布于 2024-12-26 03:05:31 字数 1130 浏览 0 评论 0原文

我已经使用以下查询构建了一个视图

SELECT TRUNC(sysdate - (365), 'YYYY') + (level-1) AS the_day
  FROM dual
    CONNECT BY level <= to_number(TO_CHAR(last_day(add_months(TRUNC(sysdate, 'YYYY'),11)), 'DDD'))

上面的查询返回如下输出。

THE_DAY
---------
01-JAN-11
02-JAN-11
03-JAN-11
04-JAN-11
05-JAN-11
06-JAN-11
07-JAN-11
08-JAN-11
09-JAN-11
10-JAN-11
11-JAN-11

...

20-DEC-11
21-DEC-11
22-DEC-11
23-DEC-11
24-DEC-11
25-DEC-11
26-DEC-11
27-DEC-11
28-DEC-11
29-DEC-11
30-DEC-11
31-DEC-11
01-JAN-12

这是2012 年 1 月。所以我需要从上面的输出中删除从 01-JAN-1131-JAN-11 的所有日期,并添加从 01-JAN-12< /code> 到 31-JAN-12 进行输出。

我该怎么做?我应该如何修改我的查询以获得如下结果。

THE_DAY
---------
01-FEB-11
02-FEB-11
03-FEB-11
04-FEB-11
05-FEB-11
06-FEB-11
07-FEB-11
08-FEB-11
09-FEB-11
10-FEB-11
11-FEB-11

...

20-DEC-11
21-DEC-11
22-DEC-11
23-DEC-11
24-DEC-11
25-DEC-11

...

01-JAN-12
02-JAN-12
03-JAN-12
04-JAN-12
05-JAN-12
06-JAN-12
07-JAN-12
08-JAN-12
09-JAN-12
10-JAN-12
11-JAN-12
12-JAN-12
...
30-JAN-12
31-JAN-12

I have build a view with following query.

SELECT TRUNC(sysdate - (365), 'YYYY') + (level-1) AS the_day
  FROM dual
    CONNECT BY level <= to_number(TO_CHAR(last_day(add_months(TRUNC(sysdate, 'YYYY'),11)), 'DDD'))

above query return output like below.

THE_DAY
---------
01-JAN-11
02-JAN-11
03-JAN-11
04-JAN-11
05-JAN-11
06-JAN-11
07-JAN-11
08-JAN-11
09-JAN-11
10-JAN-11
11-JAN-11

...

20-DEC-11
21-DEC-11
22-DEC-11
23-DEC-11
24-DEC-11
25-DEC-11
26-DEC-11
27-DEC-11
28-DEC-11
29-DEC-11
30-DEC-11
31-DEC-11
01-JAN-12

This is January of 2012. so i need to remove all days from 01-JAN-11 to 31-JAN-11 from above output and add all days from 01-JAN-12 to 31-JAN-12 to output.

how can i do this ? how should i modify my query for get result like below.

THE_DAY
---------
01-FEB-11
02-FEB-11
03-FEB-11
04-FEB-11
05-FEB-11
06-FEB-11
07-FEB-11
08-FEB-11
09-FEB-11
10-FEB-11
11-FEB-11

...

20-DEC-11
21-DEC-11
22-DEC-11
23-DEC-11
24-DEC-11
25-DEC-11

...

01-JAN-12
02-JAN-12
03-JAN-12
04-JAN-12
05-JAN-12
06-JAN-12
07-JAN-12
08-JAN-12
09-JAN-12
10-JAN-12
11-JAN-12
12-JAN-12
...
30-JAN-12
31-JAN-12

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

沙与沫 2025-01-02 03:05:31
SELECT add_months(TRUNC(sysdate - (365), 'YYYY'),to_number(to_char(sysdate,'mm'))) + (level - 1) AS the_day
  FROM dual
CONNECT BY level <=
           to_number(TO_CHAR(last_day(add_months(TRUNC(sysdate, 'YYYY'), 11)),
                             'DDD'))
SELECT add_months(TRUNC(sysdate - (365), 'YYYY'),to_number(to_char(sysdate,'mm'))) + (level - 1) AS the_day
  FROM dual
CONNECT BY level <=
           to_number(TO_CHAR(last_day(add_months(TRUNC(sysdate, 'YYYY'), 11)),
                             'DDD'))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文