09 September 2006

How To Extract Date Values In Oracle

Kimi zaman uygulamalar içinde tarih değerleri arasındaki farkları alıp kullanabilirsiniz. Oracle'da iki tane date tipi ile normal sayısal değerler arasında fark almak gibi işlem yapılır. Sonuç gün cinsinden numerik olarak döner. İstediğiniz formata dönüştürebilirsiniz. Şöyleki;
DECLARE
start_date DATE;
end_date DATE;
time_difference NUMBER;
time_difference_in_seconds NUMBER;
time_difference_in_minutes NUMBER;

BEGIN
start_date := to_date('09.09.2006 09:57:49',
'DD.MM.YYYY HH24:MI:SS');
end_date := to_date('09.09.2006 09:59:34',
'DD.MM.YYYY HH24:MI:SS');
time_difference := end_date - start_date;

time_difference_in_seconds := time_difference * 86400; --24*60*60
time_difference_in_seconds := trunc(time_difference_in_seconds, 4);

time_difference_in_minutes := time_difference * 1440; --24*60
time_difference_in_minutes := trunc(time_difference_in_minutes, 4);

dbms_output.put_line('Start Time : ' ||
to_char(start_date, 'DD.MM.YYYY HH24:MI:SS'));
dbms_output.put_line('End Time : ' ||
to_char(end_date, 'DD.MM.YYYY HH24:MI:SS'));
dbms_output.put_line('Difference in seconds :' ||
time_difference_in_seconds);
dbms_output.put_line('Difference in minutes :' ||
time_difference_in_minutes);
END;

Çıktı ise
Start Time : 09.09.2006 09:57:49
End Time : 09.09.2006 09:59:34
Difference in seconds :105
Difference in minutes :1,75

Fark alma işleminin birçok yolu bulunmaktadır. Ben sadece birini aktardım.

No comments: