DateDiff fonksiyonu verilen iki tarih arasındaki farkı değişik türlerde(gün,ay,yıl…) bulmayı sağlar. Kullanımı : DATEDIFF ( datepart , startdate , enddate ) şeklindedir. datepart yerine aşağıdaki değerlerden biri gelebilir.
Örnek Kullanım :
select datediff(year,’2005.7.15′,’2007.7.15′)
şeklinde bir kullanım sonuç olarak 2 değerini gösterir.




=DateDiff(““d””,Now(),firmalar.bitis_tarihi)
olarak kullandığımda #ad? sonucunu döndürüyor.
sebebi ne olabilir?
hangi veritabanında kullanıyorsun bu kodu? ben bu örnekleri ms sql server için yazdım her sistem desteklemeyebilir. birde sql server da günün tarihini almak için getdate kullanılıyor.
access ile kullanıyorum. datediff access ile kullanılabiliyor bunu biliyorum ama sanırım bir yerde hata yapıyorum.
tarih alanında sıkıntı olabilir. şimdi access 2007 de denedim datediff(“d”,now(),tarihalanim) şeklinde ve çalıştı. tarih alanındaki bilgileri kontrol et. eğer uzun tarih türüyse kolona sığmama gibi bir durum olabilirmi? excelde oluyodu öyle kolona sığmayınca # işareti koyuyodu
ahah
teşekkürler hatamı gördüm. çift tırnak koymuşum d’ye. nereden esmişse
BEn Birşey Sorabilir Miyim , Peki ilk tarihi biliyorum 2 tarih database den gelse yani..
DateDiff(Year , ‘2007.01.01 ‘ ,Select DogumTarihi From Musteriler ) gibi
ya ben aslında iki tarih aralığındaki kayırların gelmesini istiyorum ama onu da yapamadım..
Yardım ederseniz Sadullah bey, sevinirim.
İyi Günler
merhaba Saygın. cevabım biraz geç kaldı kusura bakma askerdeydimde
. senin yazdığın gibi bir cümlenin çalışacağını sanmıyorum çünki o select cümlesinin geriye birden fazla değer döndürme ihtimali var. müşteri doğum tarihi bilgisinin bulunduğu tablo üzerinde
select DateDiff(Year , ‘2007.01.01 ‘ ,tarihalanin ) from musteribilgileritablon
şeklinde bir sorgu kullanabilirsin bence
slm arkadaşlar projem varda bitirdim ama bir işlemim kaldı sadece bende iki saat arasındaki farkı yapamıyorum bunun komutlarını biliyormusunuz yardımcı olun lütfen çok az zamanım kaldı. şimiden teşekürler……
bu arada projem visual basic veri tabanı yapıyorum
SELECT PROTOKOL.PROTOKOL_NO, PROTOKOL.CTARIH, ISLEMYAP.*
FROM PROTOKOL INNER JOIN ISLEMYAP on PROTOKOL.PROTOKOL_NO = ISLEMYAP.PROTOKOL_NO
AND PROTOKOL.CTARIH < ISLEMYAP.TARIH
AND PROTOKOL.CTARIH between TO_DATE(‘01.01.2008 00:00′,’dd.mm.yyyy hh24:mi’)
and to_date(‘30.01.2008 23:59′,’dd.mm.yyyy hh24:mi’)
şeklinde bir komutla iki tablodaki bilgileri birleştirerek sorgulayabiliyorum. ama PROTOKOL tablosundaki TARIH bilgilerinin ISLEMYAP tablosundaki CTARIH bilgilerinden en az bir gün büyük olanlarını nasıl listeleyebilirim.
Merhabalar,
Access’de Uyelik isimli kullanıcıların Üyelik tarihlerinin bulunduğu alanım var.UyelikTur alanımda ise 1,3,6,12 aylık üyelik türleri var.Kullanıcı hangisini seçmişse ona göre üylik tarihini gizlice arttırıp bugünün tarihi(now olayı galiba) ile karşılaştıracak.1 hafta kalmışsa üyeliğinin bitmesine bana tabloda gösterecek.Bunu nasıl yapabilirim.Yardımlarınızı bekliyorum…
mySql’de tarih almak icin Current_Date kullanabilirsiniz. Kullanimi :
SELECT `dTarihi` , (DATEDIFF( CURRENT_DATE, `dTarihi` ) /365.25) AS Yas
FROM `Personel`
bu kodu kullanarak. Tek sql ile yasinizi tam olarak alabilirsiniz. Saygilar
datediff fonksiyonunda doğum tarihi ile şimdiki tarih girildiğinde arasındaki tarih farkını bulan proqramı visual basic dilinde yapınız????
nası olcq bu işş
hh. strange..
?
selam, madem tarih farkları ile ilgili sorular var
bende bir soru sorsam? şimdi bunun cevabı ile uğraşıyorum da
iki tarih arasındaki farkı iş günü olarak nasıl alabilirim?
yani sadece c.tesi ve pazarlar hariç hesaplamam lazım?
yardımcı olursanız sevinirim…
kolay gelsin,
Vİ
datepart(weekday,tarihalanın) ile haftanın kaçıncı günü olduğunu alırsın ve bu değer cumartesi veya pazara denk geliyorsa sorgudan çıkarırsın ör: select * from tablon where DatePart(weekday,tarihalanın) not in(6,7)
buradaki 6,7 değerleri serverindeki bölgesel ayarlara göre farklılık gösterebilir bunu aşmak içinde sorgunu bir procedure olarak düzenleyip başlangıçta tarih formatını istediğin herhangi bir formata çevirip sorgunu buna göre düzenleyebilirsin.
yeniden merhaba Sadullah Bey,
sizin mesajınızdan önce, üstüne biraz çalışınca hallettim
yöntemimiz aşağı yukarı aynı
SP kullanmam mümkün degil. sorgunun içinde bir kolon gibi kullanmam gerekiyor. yeni Fn gibi.
ayrıca sizin bahsettiğiniz sadece iş gününü içeren kayıtları bulmak için, benim istediğim ise a tarihi ile b tarihi arasında kaç iş günü vardır.
datediff içindeki iş günler gibi de anlatabilirim.
yani where bölümünde degil select bölümünde olması gerekecek.
yardımınız için tekrar teşekkür ederim.
bu arada ilgilenirseniz, sitemizi ziyaret etmenizi dilerim.
http://www.dynamicquery.net
vi
kusura bakmayın, sorguyu eklemeyi unutmuşum.
belki başka arkadaşlara da yardımımız olur.
ve 6 yada 7 nin yeri konusundaki uyarınız için de teşekkür ederim.
———————-
select
ilktar,
sontar,
datediff(dd,ilktar,sontar) as gun_farki,
datediff(dd,ilktar,sontar) – datediff(ww,ilktar,sontar) * 2 + case when datepart(dw,ilktar) 6 then 1 else 0 end as is_gunu_farki
from izin_hareketleri
———————–
lütfen sizde kontrol edin.
saygılarımla,
vi
çözümü paylaştığın için teşekkür ederim
Merhaba, benim vb.net de tarih sorgusu ile ilgili çözemediğim bir konu var, sorgum şu şekilde;
“SELECT * from Kayitlar where
Baslama_Tarih >=’” & Format(DateTimePicker1.Value, (“MM.dd.yyyy”)) & “‘
and
Bitis_Tarih <= '" & Format(DateTimePicker2.Value, ("MM.dd.yyyy")) & "' , Baglan)
sorgu güzel şekilde çalışıyor ve iki tarih arasını gösteriyor ama dt2.value değerindeki tarihi dahil etmiyor.
örnek verecek olursam
01.01.2009 – 10.01.2009 arası dediğimde " <= " ifadesi olmasına rağmen 10'una ait kayıtları göstermiyor. 9 una kadar olanları gösteriyor
sql2005 veritabanı