oracle - 如何获得上个月的相同日期?
问题描述
我试过的:
for i in 1..5 loop
v_input_date := ADD_MONTHS(v_input_date, -1);
end loop;
结果:
29.03.2021.
28.02.2021.
31.01.2021.
31.12.2020.
30.11.2020.
预期成绩:
29.03.2021.
28.02.2021.
29.01.2021.
29.12.2020.
29.11.2020.
我可以提取返回的日期,将其与原始日期进行比较,并在需要时减少它,但有没有更好的方法来实现这一点?
解决方案
您发布的代码实际上并没有按照您的描述进行。
SQL> declare
2 v_input_date date := date '2021-04-29';
3 begin
4 for i in 1 .. 5 loop
5 dbms_output.put_line(add_months(v_input_date, -1 * i));
6 end loop;
7 end;
8 /
29.03.2021
28.02.2021
29.01.2021
29.12.2020
29.11.2020
PL/SQL procedure successfully completed.
SQL>
推荐阅读
- ios - 如何在沙盒中测试免费试用?
- c++ - 这是 C++ 中的嵌套命名空间语法标准吗?
- python - 如何导入新编译的python模块?
- javascript - 回调函数删除两个项目而不是单个项目
- reactjs - 反应、保持 redux 状态或通过 jwt 重新认证以保持用户登录?
- javascript - JavaScript 函数多次调用
- c# - 在另一个项目中使用 asp .net 身份用户
- java - 使用 HtmlUnit 抓取动态更改的网页
- android - 如何解决错误膨胀类 android.support.design.widget.FloatingActionButton
- proxy - 如何将 Google Cloud PubSub 与代理一起使用?