我的日期如下
SELECT TO_CHAR(SYSDATE, 'DDD') FROM dual;
以上查询的结果为:117
我需要将此 117 转换为月和日。任何人都知道如何在PL SQL中执行此操作
预期结果为04-27
答案 0 :(得分:2)
将'DDD'
更改为'MM-DD'
。
试试这个:
SELECT TO_CHAR(SYSDATE, 'MM-DD')
FROM dual;
<强>输出:强>
04-27
<强>演示:强>
<强>编辑:强>
DDD
显示一年中第一天的天数。
例如:
SELECT TO_CHAR(TO_DATE('2018-01-01','YYYY-MM-DD'), 'DDD')
FROM dual;
提供输出001
,因为它是一年中的第一天2018
。
所以要打破117
你需要一年。
然后你可以使用这个查询。
SELECT TO_CHAR(TO_DATE('2018-01-01','YYYY-MM-DD') + column_name - 1, 'MM-DD')
FROM dual;
示例查询:
SELECT TO_CHAR(TO_DATE('2018-01-01','YYYY-MM-DD') + 117 - 1, 'MM-DD')
FROM dual;
<强>输出:强>
04-27
<强>演示:强>
答案 1 :(得分:0)
如果您有“117”并希望将其转换为日期,则必须使用一点(但实际上只是一点点)算术。由于'DDD'表示自当年第1年以来的天数,因此将其添加到... 当年的第1天并应用适当的格式掩码将其转换为日期。我想删除昨天,我减去“1”。
例如:
SQL> select to_char(sysdate, 'ddd') from dual;
TO_
---
117
SQL> select to_date(trunc(sysdate, 'yyyy') + 117, 'dd.mm.rrrr') - 1 resul
2 from dual;
RESULT
----------
27.04.2018
SQL>
或者,使用您指定的格式(MM-DD):
SQL> select to_char(trunc(sysdate, 'yyyy') + 117 - 1, 'mm-dd') result
2 from dual;
RESUL
-----
04-27
SQL>