sql - Oracle中如何给日期加上一个季度
问题描述
我正在寻找一种在 oracle 中为日期添加四分之一的方法。
例如 28-FEB-21 应该变成 28-MAY-20
目前我正在使用 ADD_MONTHS('28-FEB-21',3) 添加一个季度,但将日期更改为 31-MAY-21
问候,
解决方案
您可以使用:
LEAST(
ADD_MONTHS( value, 3 ),
ADD_MONTHS( TRUNC( value, 'MM' ), 3 )
+ ( value - TRUNC( value, 'MM' ) ) DAY TO SECOND
)
所以,如果你有测试数据:
CREATE TABLE table_name ( value ) AS
SELECT DATE '2019-11-30' FROM DUAL UNION ALL
SELECT DATE '2021-02-28' + INTERVAL '01:23:45' HOUR TO SECOND FROM DUAL;
然后查询:
SELECT value,
LEAST(
ADD_MONTHS( value, 3 ),
ADD_MONTHS( TRUNC( value, 'MM' ), 3 )
+ ( value - TRUNC( value, 'MM' ) ) DAY TO SECOND
) AS value_plus_quarter
FROM table_name;
输出:
价值 | VALUE_PLUS_QUARTER :----------------- | :----------------- 2019-11-30 00:00:00 | 2020-02-29 00:00:00 2021-02-28 01:23:45 | 2021-05-28 01:23:45
db<>在这里摆弄
推荐阅读
- python - Python + Tkinter:“属性错误”
- react-native - 我可以旋转吗
没有变换旋转? - javascript - 如何使不和谐音乐机器人在音乐结束后删除“正在播放”消息?
- video-streaming - 如何在 ESP32-CAM 上流式传输视频时拍照并保存到 microSD 卡
- python - 将 Python 链接到 pip 位置 [Windows]
- assembly - 如何从目标文件的反汇编中找到位于某个地址的数据字节?
- r - 加载 R 包时,如何分配可用的变量?
- database - 每个可序列化的计划视图都是可序列化的吗?
- css - Problems with the Width's div in Sass - css
- django - 无法在 DJANGO Rest Framework 的视图和 url 中创建动态变量