我有几个月了。
我希望以YYMM
的格式代表他们多年e.g。
5 -> 0005
13 -> 0101
24 -> 0200
有没有人知道在Oracle SQL中执行此操作的非复杂方法?
答案 0 :(得分:3)
一些数学和一些格式化是要走的路:
with sample_data as (select 5 num from dual union all
select 13 num from dual union all
select 24 num from dual union all
select 1400 num from dual)
select to_char(floor(num/12), 'fm9999909')||to_char(mod(num, 12), 'fm09') yrmn
from sample_data;
YRMN
-----------
0005
0101
0200
11608
我加入了一个超过100年的只是为了向你展示它的样子;我不知道你的情况是否存在这种可能性,或者你是否希望其他值被填零,因为你没有说。
答案 1 :(得分:0)
select lpad(trunc(yourValue/12),2,'0')||lpad(mod(yourValue,12),2,'0') result
from dual
答案 2 :(得分:-1)
试试这个;
select right("0" + convert(varchar(20), convert(numeric(10,0), 37/12)), 2)
+ right("0" + convert(varchar(20), 37%12), 2)
0301
我用过" 37"例如。