向上舍入到Oracle DB中最接近的月份

时间:2019-02-21 21:21:05

标签: sql oracle

我试图向上舍入到最近的月份。到目前为止,我有:

w

四舍五入到最接近的月份,在这种情况下为向上。发布时,输出为SELECT ROUND(CURRENT_DATE, 'MM') FROM DUAL ,格式为03/01/2019

但是,例如,如果是一个月的第一天怎么办?

MM/DD/YYYY

这将产生与上述相同的输出。但我期望SELECT ROUND(TO_DATE('01-03-19','DD-MM-YY'), 'MM') FROM DUAL

我可以做类似的事情:

04/01/2019

产生了预期的输出SELECT TRUNC(ADD_MONTHS(TO_DATE('30-03-19','DD-MM-YY'),1), 'MM') - 1 FROM DUAL

我要3月30日,加上一个月。将其截断以得到该月的第一天,然后减去上个月的最后一天。

现在这可行,但是看起来又长又乏味。当然有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

如果您要查找当月的最后一天

LAST_DAY(SYSDATE)

如果您要查找下个月的第一天

LAST_DAY(SYSDATE) + 1