如果数字少于两位数,我需要将前导零添加到一个数字上,并将两个这样的数字组合成单个数字,并且它们之间没有空格。
我的尝试:
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;
所以,我的问题是如何在月年和月日之间删除空间。我用了
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;
但是前导零消失了。
看起来好像您不想添加前导零,看起来好像您没有按照想要的方式将日期转换为字符。TO_CHAR()的日期时间格式模型非常强大,请充分利用它。
select to_char(dt, 'yyyymmdd') as dayid from atm_facts
要真正回答您的问题,您可以使用带有TO_CHAR()的数字格式模型来填充前导’。
例如,以下返回 006
006
select to_char(6, 'fm009') from dual;
如果需要,您可以使用fm上述文档中提到的format模型修饰符,以删除前导空格。
fm