Jiv*_*van 9 sql oracle oracle11g
如果数字少于两位,我需要将前导零添加到一个数字,并将两个这样的数字组合成单个数字,它们之间没有空格.
我的尝试:
select ( extract (year from t.Dt)
|| to_char(extract (month from t.Dt),'09')
|| to_char(extract (day from t.Dt),'09') ) as dayid
from ATM_FACTS t;
Run Code Online (Sandbox Code Playgroud)
结果:

所以,我的问题是如何在月 - 月和月 - 日之间删除空格.我用了
select ( extract (year from t.Dt)
|| to_number(to_char(extract (month from t.Dt),'09'))
|| to_number(to_char(extract (day from t.Dt),'09')) ) as dayid
from ATM_FACTS t;
Run Code Online (Sandbox Code Playgroud)
但是领先的零消失了.
Ben*_*Ben 21
它看起来不像你想要添加前导零,看起来你没有按照你想要的方式将你的日期转换成一个角色.TO_CHAR()的日期时间格式模型非常强大,充分利用它.
select to_char(dt, 'yyyymmdd') as dayid
from atm_facts
Run Code Online (Sandbox Code Playgroud)
要真正回答您的问题,您可以使用带有TO_CHAR()的数字格式模型来填充前导.
例如,以下返回 006
select to_char(6, 'fm009') from dual;
Run Code Online (Sandbox Code Playgroud)
您可以使用fm上面文档中提到的格式模型修饰符来删除前导空格(如有必要).
| 归档时间: |
|
| 查看次数: |
28810 次 |
| 最近记录: |