2013-05-16 14 views
9

İki basamaktan daha azsa, bu sayılardan iki tanesini birleştirerek aralarında boşluk olmadan tek bir sayıya bir sayı eklemeliyim.Oracle'da tarihlere lider sıfırları nasıl ekleyebilirim?

Benim Denemesi:

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; 

Sonuç:

enter image description here

Yani, benim sorunum ben ay-yıl ve ay-gün arasındaki boşlukları da kaldırabilirsiniz nasıl.

kullandım, ancak baştaki sıfırlar yok olur.

+0

gerçekten anlamadı veya sıfır en ya da değil, ama sonra belki bir şey '((replace (TO_CHAR to_number seçmek t sevmiyorum şudur: tek to_char açıklamada biçimlendirebilir .Dt, 'DS'), '/', '')) ' – haki

cevap

20

Önde gelen sıfırları eklemek istediğiniz gibi görünmüyor, tarihinizi istediğiniz gibi tam olarak bir karaktere dönüştürmüyorsanız benziyor. TO_CHAR() datetime format model son derece güçlüdür, tam olarak kullanın.

select to_char(dt, 'yyyymmdd') as dayid 
    from atm_facts 

aslında sen s lider ile ped to_char() ile number format model kullanabileceğiniz soruya cevap vermek için.

Örneğin

aşağıdaki döner 006

select to_char(6, 'fm009') from dual; 

Gerekirse gelen boşluklar kaldırmak için, yukarıda docs bahsedilen biçim modeli değiştirici fm, kullanabilir.

+0

evet, işe yaradı ... çok teşekkürler @Ben – Jivan

+0

@Zane - Sorununuzu çözmenize yardımcı olacak cevapları kabul etmek kibarca. –

+0

Bağlantılı belgeyi @zane okumayı öneririm, 24 saatlik saat için datetime biçim modeli 'hh24' ve bir dakika için 'mi', yani 'to_char (dt,' hh24mi ') ' – Ben

1

DATE TARİH Mİ? İsterseniz

to_char(t.Dt, 'YYYYMMDD') 
İlgili konular