首页 > 解决方案 > 如何将年份和月份转换为数字oracle

问题描述

我正在尝试将 sysdate 年份和月份转换为数字或字符。

我想要这样的东西:

202107

或上个月

202106

我试过这段代码:

select trunc(add_months(sysdate, -1), 'MM') from dual;

请帮忙,谢谢

标签: oracle

解决方案


将其转换为字符串,然后转换为数字:

SELECT TO_NUMBER(TO_CHAR(ADD_MONTHS(SYSDATE,-1), 'YYYYMM'))
FROM   DUAL;

或者,您可以使用提取并将其包装在子查询中,这样您就不需要重复添加月份:

SELECT EXTRACT(YEAR FROM dt) * 100 + EXTRACT(MONTH FROM dt)
FROM   (
  SELECT ADD_MONTHS(SYSDATE, -1) AS dt
  FROM   DUAL
)

推荐阅读