oracle - 如何将年份和月份转换为数字oracle
问题描述
我正在尝试将 sysdate 年份和月份转换为数字或字符。
我想要这样的东西:
202107
或上个月
202106
我试过这段代码:
select trunc(add_months(sysdate, -1), 'MM') from dual;
请帮忙,谢谢
解决方案
将其转换为字符串,然后转换为数字:
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
)
推荐阅读
- php - 作为函数调用者执行 return
- mysql - 如何安全地存储自由文本用户的答案
- flutter - 如何获取字符串中的所有项目名称
- dart - 为什么 meta.gps.gpsLatitude 为空?
- python-3.x - Python String - 需要在末尾打印带有双引号的字符串
- postgresql - Postgres 查询计划器中的巨大堆块数
- javascript - 如果你调用一个函数,它返回一个箭头函数,作为你的一个组件的属性,返回的箭头函数会被反弹吗?
- python - 如何使用 Selenium 和 Python 下载图像
- amazon-web-services - 两个 aws cloudformation 堆栈可以共享一个 AWS::Serverless::Function 吗?
- android - 尝试获取最后一次位置更新时调用 requestLocationUpdates 时尝试超时