PL/SQL İki Tarih Arasındaki Farkı Bulmak
Plsql’de iki tarihin farkını aldığımızda default olarak gün farkını verir, eğer saat, dakika, saniye cinsinden elde etmek istersek bir takım hesaplamalar yapmamız gerekli.(saat-dakika-saniye hesaplamaları)
Bu işlemler nerelerde kullanılır; bu personel ne kadar süredir çalışıyor, bu sipariş ne kadar süredir bekliyor vs gibi soruların cevaplarını bulabiliriz.
Şimdi bir örnekle gösterelim.
10 gün öncesi ile şu an arasındaki farkı bulalım, SYSDATE fonksiyonu plsql’de şimdiki tarihi verir.
select
ROUND(months_between(sysdate,(sysdate-10))/12,1) yil_farki,
ROUND(months_between(sysdate,(sysdate-10)),1) ay_farki,
(sysdate - (sysdate-10)) gun_farki,
(sysdate - (sysdate-10)) * 24 saat_farki,
(sysdate - (sysdate-10)) * 24 * 60 dakika_farki,
(sysdate - (sysdate-10)) * 24 * 60 * 60 saniye_farki,
(sysdate - (sysdate-10)) * 24 * 60 * 60 * 1000 milisaniye_farki
from dual;
Sorgumuzun çıktısı aşağıdaki gibidir..
yil_farki | ay_farki | gun_farki | saat_farki | dakika_farki | saniye_farki | milisaniye_farki |
0 | 0,3 | 10 | 240 | 14400 | 864000 | 864000000 |
MSSQL (T-SQL) iki tarih arasındaki farkı bulmak
Mssqlde iki tarih arasındaki fark nasıl alınır, bunu da bir örnekle açıklayalım, t-sql de bunun için hazır bir fonksiyon mevcut, DATEDIFF fonksiyonunu kullanacağız, örnek için ele alacağımız iki tarih içinde GETDATE() fonskiyonunu kullanacağız. GETDATE() fonksiyonu T-SQL de şu anki zamanı döndürür.
DATEDIFF genel kullanımı DATEDIFF ( datepart , startdate , enddate ) şeklindedir.
declare @ilktarih datetime =getdate()-10 --10 gün önceki zaman
declare @sontarih datetime =getdate() --Şimdiki zaman
Select DATEDIFF(YEAR,@ilktarih,@sontarih) yil_farki,
DATEDIFF(MONTH,@ilktarih,@sontarih) ay_farki,
DATEDIFF(DAY,@ilktarih,@sontarih) gun_farki,
DATEDIFF(HOUR,@ilktarih,@sontarih) saat_farki,
DATEDIFF(MINUTE,@ilktarih,@sontarih) dakika_farki,
DATEDIFF(SECOND,@ilktarih,@sontarih) saniye_farki,
DATEDIFF(MILLISECOND,@ilktarih,@sontarih) milisaniye_farki
Sorgumuzun çıktısı aşağıdaki gibidir..
yil_farki | ay_farki | gun_farki | saat_farki | dakika_farki | saniye_farki | milisaniye_farki |
0 | 0 | 10 | 240 | 14400 | 864000 | 864000000 |