Tags

, , , , , , ,

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′;

work with date

work with date

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;

sysdate

SYSDATE Bulunduğun Tarih

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’;

months_between function 1

months_between function

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’;

months_between function 2

months_between function 2

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;

add_months function 1

add_months function

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;

next_day function1

next_day function1

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;

last_day

last_day

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%’;

default date format

default date format

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.

Advertisements