Tags

, , , ,

Merhaba Arkadaşlar, Bu yazımızda
Oracle Sql’de Dönüşüm Fonksiyonlarından(Conversion Functions )
To_Char,To_Date fonksiyonlarını göreceğiz Geçen yazımızda Date işlemlerinden bahsetmiştik.Bu yazımızda To_Char fonksiyonlarıyla date formatlarını değiştireceğiz. Oracle Veri Tabanında Date(Tarih) data tipini karaktere(character) çevirmek için To_Char, Karakter data tipini numbera çevirmek için To_Number kullanılır. Aynı şekilde operasyonlar terstende yapılabilir.Fakat Number data tipi direk Date data tipine çevrilemez arada Char data tipine çevrilmek zorundadır.

To_Char
Arkadaşlar To_Char fonksiyonu number veya date data tipinini karakter tipine çevirmek için kullanılır.Önceki yazımızda bahsettiğimiz kısma gelelim ve date formatını To_Char fonksiyonu ile değiştirelim.Sysdate parametresini kullanarak bugünün tarihini alalım ve To_char fonksiyonu ile Bugünü değişik formatlarda gösterelim.

select To_Char(sysdate,'D-DD-DDD-DY-DAY/MM-Mon-MONTH/W-WW/Q/YYYY/YY/S
CC') as "Bu günün Tarihi" from dual;
To_Char(sysdate)

To_Char(sysdate)

D:Haftanın kaçıncı günündeyiz.
DD:Ayın kaçıncı Günündeyiz.
DDD:Yılın Kaçıncı Günündeyiz.
DY ve Day kısa ve uzun olarak Günün adını belirtir.Burada küçük büyük harf önemlidir ona göre monitör edilir.
MM:Kaçıncı Aydayız.
Mon ve MONTH kısa ve uzun olarak Ayın adını belirtir.Yine Küçük ve büyük harf duyarlıdır.(MON yazsaydık OCT gelirdi,MONTH yazdığımızda OCTOBER geldiği gibi)
W: Ayın kaçıncı haftasındayız.
WW: Yılın Kaçıncı haftasındayız.
YYYY: Hangi Yılda olduğumuzu 4 hane olarak monitör eder.
YY: Hangi yılda olduğumuzu son 2 hane olarak monitör eder.
SCC:Kaçıncı yüzyılda olduğumuzu monitör eder.

Ek olarak :RM roma rakamıyla ayı,yılın kaçıncı çeyreğinde olduğumuzu.

Arkadaşlar şimdide To_Char fonksiyonunu kullanarak number data tipini karaktere(char) çevirelim.Örneğimizde Employees tablomuzdaki salary kısmını kullanalım. Salary kısmı maaş bölümüdür ve number data tipi olarak tutulur şimdi bu kısmı To_Char  fonksiyonunu kullanarak  ekrana monitör edelim.

select salary,to_char(salary,'$9999')"Dolarlı Maaş" from employees;
To_char(salary)1

To_char(salary)1

‘$9999’ belirttik maaşın formatı 4 haneli oldu o yüzden
outputta 4,7,8 satırlarda görüldüğü gibi değer ### gibi gelmiştir.

select salary,to_char(salary,'$99,999.00')"Dolarlı Maaş" 
 from employees;
To_char(salary)2

To_char(salary)2

Arkadaşlar görüldüğü gibi bin ve üzerinden sonra virgül
koyuldu ve yüzler basamağına geçti. Bu format şuan benim
kullandığım Oracle da dil American olduğu için ilk başta
‘,’virgül sonra ‘.’ dır. Türkçe kullanan arkadaşlar
‘$99.999,00’ yazmaları gerekecektir.

To_Date:
To_Date fonksiyonu karakter alanları tarih alanlarına çevirmemizi sağlar yada
daha öncedende bahsetmiştik sorgumuzda where ile koşul belirtiyorsak
veritabanımızda kayıt nasılsa o formatta yazmalıyız koşulumuzu.Şimdi tarih
formatını çekerken biz istediğimiz formatı yazalım ve istediğimiz tarih aralığı gelsin.
Employees tablomuzdaki işe giriş kolonu olan hire_date kolonunu çağıralım ve
’01-01-95′ den önce işe girenleri monitör edelim.

 select hire_date from employees
 where hire_date<To_date('01-01-01','DD-MM-RR');
to_date

to_date

Arkadaşlar elimizden geldiğince Conversion fonksiyonları anlatmaya çalıştık bir sonraki yazımızda Conditional Expression (Case,Decode) kullanımından bahseceğiz.

 

Advertisements