oracle查询开始时间和结束时间之间的连续月份
SELECT
TO_CHAR(ADD_MONTHS(TRUNC(SYSDATE, 'MM'), LEVEL - 1), 'YYYY-MM') AS month
FROM
DUAL
CONNECT BY
LEVEL <= MONTHS_BETWEEN(TO_DATE('2023-12', 'YYYY-MM'), TRUNC(SYSDATE, 'MM')) + 1;
这段代码使用了Oracle中的CONNECT BY
语法来生成一个系列,这个系列是从当前月份开始,到指定的结束月份(2023年12月)。TRUNC(SYSDATE, 'MM')
用于获取当前月的第一天,ADD_MONTHS(TRUNC(SYSDATE, 'MM'), LEVEL - 1)
用于计算该系列中每个月的第一天。TO_CHAR(ADD_MONTHS(TRUNC(SYSDATE, 'MM'), LEVEL - 1), 'YYYY-MM')
将这些日期转换为格式化的字符串,即年和月,以便作为输出。
评论已关闭