我有幾個月的時間。將幾個月轉換爲日期字符串
我謹代表他們作爲格式YYMM
例如數年或數月
5 -> 0005
13 -> 0101
24 -> 0200
有誰知道在Oracle SQL中執行此操作的非複雜方式嗎?
我有幾個月的時間。將幾個月轉換爲日期字符串
我謹代表他們作爲格式YYMM
例如數年或數月
5 -> 0005
13 -> 0101
24 -> 0200
有誰知道在Oracle SQL中執行此操作的非複雜方式嗎?
數學的一點點,一些格式是要走的路:
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年以上只是爲了告訴你如何它可能看起來;我不知道你的情況是否有這種可能性,或者你是否希望其他值因爲你沒有說而被填零。
正是我在想的。只有格式掩碼可以留給OP的管轄權;-) +1 –
試試這個;
select right("0" + convert(varchar(20), convert(numeric(10,0), 37/12)), 2)
+ right("0" + convert(varchar(20), 37%12), 2)
0301
我以「37」爲例。
這對Oracle來說不起作用 – Boneist
對不起,我錯過了oracle,但它可以在mssql或sybase上工作:) –
select lpad(trunc(yourValue/12),2,'0')||lpad(mod(yourValue,12),2,'0') result
from dual
有一條信息缺失:月份的起始時間點是多少?表格說明也如此... – kevinsky
你的意思是你想除以十二,並採取結果和其餘。檢查Oracle REMAINDER功能。 – rghome
我想你需要'floor'和'mod'的組合。然後你可以玩**格式的面具**。 –