Anasayfa / Yazılım / SQL / DATEDIFF Fonksiyonu

DATEDIFF Fonksiyonu

DATEDIFF fonksiyonu ile SQL’de iki tarih arasındaki farkı buluruz. Bu fonksiyon 3 parametreye ihtiyaç duyar. İlk parametre tarihin hangi kısmı, yani ay, gün, yıl bilgisi. İkinci kısım iki tarih arasında önce gelen tarih, sonraki parametre ise sonra gelen tarih olur. Örneğin bir e-ticaret sitesinde siparişin yapıldığı tarihten itibaren kaç gün geçtiğini veya bir işyerinde bir çalışanın işe başlangıcından itibaren kaç gün geçtiğini vb şekilde bir çok alanda iki tarih arasında ne kadar zaman geçtiğini bulmamız açısından DATEDIFF fonksiyonu çok önemlidir. Kullanımını örnekleyip yazımı bitirmek istiyorum :

SELECT OrderDate, GETDATE() GuncelTarih,
DATEDIFF(year,OrderDate,GETDATE()) AS "Kaç Yıl Geçti",
DATEDIFF(month, OrderDate, GETDATE()) AS "Kaç Ay Geçti",
DATEDIFF(day,OrderDate,GETDATE()) AS "Kaç Gün Geçti"
FROM Sales.SalesOrderHeader
WHERE SalesOrderID in (43659,43763,43765,60625)

Bu sorgumda Sales.SalesOrderHeader tablosunda SalesOrderID değeri 43659,43763,43765,60625 olan verilerin OrderDate alanında yer alan tarihi ile bugünkü tarihi arasında ne kadar yıl geçti, ne kadar ay geçti, ne kadar gün geçti sorgulamasını yapıyorum.

170101

Aşağıdaki sorgumda da rastgele iki tarih arasında kaç gün, kaç ay geçti, kaç yıl geçti sorgulaması yapıyorum.

SELECT DATEDIFF(year,'05/13/1982','12/31/2012') AS "Yıl Farkı",
DATEDIFF(month,'05/13/1982','12/31/2012') AS "Ay Farkı",
DATEDIFF(day,'05/13/1982','12/31/2012') AS "Gün Farkı"

170102

Bir yorum

  1. iki tarih arası fark almak için bu sorguyu teksorguda nasıl birleştirebiliriz.Aynı topla üzerinde 2 farklı tarih sorgusu alarak gösterilen 27.09.2016 tarihindeki DEGERLERDEN 28.09.2016 TARIHINDE VERİLERİ ÇIKARAN SORGU NASI OLUŞTURULUR.Mesela;

    A_TABLO VERİLERİ:

    TARIH
    27.09.2016 100
    28.09.2016 500

    select DEGERLER from A_TABLO WHERE TARIH=’27.09.2016′

    select DEGERLER from A_TABLO WHERE TARIH=’28.009.2016′

    ALMAK İSTEĞİM SONUÇ DEGERLER ARASINDAKİ İKİ TARIH FARKI YANİ = 400(DEGERLER- DEGERLER)

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir