Tags
Oracle, Oracle Sql Add_Months, Oracle Sql Date Function, Oracle Sql Last_Day, Oracle Sql Month_Between, Oracle Sql Next_Day, Oracle Sql Sysdate, Oracle Tarih formatı değişme
Merhaba Arkadaşlar bu yazımızda Oracle veritabanında date(tarih) kullanımından bahsedeceğiz. Oracle veritabanında çeşitli date formatları vardır.Verilerimizi yüzyıl, yıl,ay,gün,saat,dakika ve saniye değerlerini ifade eden sayılar olarak depolayabiliyoruz. Default(varsayılan)tarih görüntüleme formatı DD-MON-RR Geçerli Oracle tarih degerleri 1 Ocak 4712 M.Ö. ve 31 Aralık 9999 M.S. arasında ki degerlerdir. Önce date kullanımına bakalım sonrada date fonksiyonlarıyla devam edelim ve Default date formatında değişiklikler yapalım. Date formatını istediğimiz formata dönüştürmek için Conversion Functions(Dönüşüm Fonksiyonları) anlattığımız yazıya bakınız.
Employees tablomuzdaki hire_date alanını monitör edelim.Bakalım
’01-FeB-88′ den önce işe girenler kimler..İşe giriş tarihi employees tablomuzdaki hire_date kolonudur. Select last_name,hire_date from employees where hire_date<’01-FEB-88′;
Görüldüğü gibi direk istediğimiz tarihi belirtip çeşitli operatörlerle birlikte sonuca ulaşabiliyoruz.
Şimdi’de şuan bulunduğumuz tarihi monitör edelim.
select sysdate from dual;
Date Fonksiyonları
Arkadaşlar Date fonksiyonları tarih işlemlerinde çeşitli operasyonlar yapmamızı sağlar.Şimdi sizlere Months-Between, Add_Months, Next_Day, Last_Day fonksiyonlarını kısaca örnekleyerek anlatacağım.
Months_Between:
Adındanda anlaşılacağı gibi iki tarih arasındaki haftalık farkı alır number olarak. Bir örnek verelim veri tabanımızda kayıtlı olan çalışanlarımızdan soyadı ‘King’ olanın Kaç aydır çalıştığını hesaplayalım.Bu fonksiyonun önemi oracle’da iki tarih arası alırken gün olarak hesaplanır ve günü aya çevirirken ayın kaç gün olduğunu 30-31-28-29 gibi tam belirtemediğimizden Months-Between fonksiyonu işimize yarar.
İşe giriş tarihi employees tablomuzdaki hire_date kolonudur.
select last_name,months_between(sysdate,hire_date) as “Kaç Ay çalışmış “from employees where last_name=’King’;
Burada tam değer gelmesini sağlamak için önceki yazımızda anlattığımız round fonksiyonunu kullanalım.
select last_name,round(months_between(sysdate,hire_date)) as “Kaç Ay çalışmış” from employees where last_name=’King’;
Add_Months:
Add_Months fonsiyonu belirtilen bir tarihe belirtilen ay kadar ekleme yapar. Kullanımı ilk değer date formatında ikinci değer sayı formatında olmalıdır.
select add_months(’31-Jan-01′,1) from dual;
Next_Day:
Next_Day fonksiyonu belirtilen tarihten sonraki belirtilen günü hangi gün olduğunu belirtir. Kullanımı ilk değer date formatında ikinci değer sayı formatında olmalıdır.
select NEXT_DAY(’05-Sep-03′,’Friday’) FROM dual;
Last_Day:
Last_Day fonksiyonu bulunduğu ay içerisindeki son günü bulmamızı sağlar.
select last_day(’17-OCT-13′) from dual;
Default Date Formatını Değiştirme
Oracle veri tabanında varsayılan DATE formatı NLS_DATE_FORMAT başlangıç parametresidir.Şimdi veritabanımızdaki geçerli date formatını görelim.
Select * from nls_session_parameters where parameter like ‘%NLS_DATE%’;
Sizde format farklı olabilir DD-MON-RR gibi yada Dil TURKISH olabilir.
Geçerli Date formatını değiştirmek için;
Alter Session set nls_date_format=’DD/MM/RRRR’;
Bu Sorguyu yazmamız gerekiyor. İlerleyen konularda Alterı daha detaylı anlatacağım şimdilik bu sorguyu bilmemiz yeterli.
Arkadaşlar kısaca date kullanımından bahsettik. Date kullanımında yapılan dönüştürme işlemlerini Conversion Function konusunda anlattık.