Belirtilen iki tarih arasındaki zaman aralıklarının sayısını belirten bir Variant (Long) döndürür.
Sözdizimi
DateDiff ( interval, date1, date2 [, firstdayofweek] [, firstweekofyear] )
DateDiff işlevinin söz diziminde şu bağımsız değişkenler bulunur:
Bağımsız değişken |
Açıklama |
---|---|
aralık |
Gerekli. Tarih1 ile tarih2 arasındaki farkı hesaplamak için kullandığınız zaman aralığı olan dize ifadesi. |
tarih1, tarih2 |
Gerekli. Değişken (Tarih). Hesaplamada kullanmak istediğiniz iki tarih. |
haftanın ilk günü |
İsteğe bağlı. Haftanın ilk gününü belirten bir sabit. Belirtilmezse, Pazar varsayılır. |
yılınilkhaftası |
İsteğe bağlı. Yılın ilk haftasını belirten sabit. Belirtilmezse, 1 Ocak'ın bulunduğu hafta ilk hafta olarak varsayılır. |
Ayarlar
aralıkbağımsız değişken şu ayarlara sahiptir:
Ayar |
Açıklama |
---|---|
yyyy |
Yıl |
ç |
Çeyrek |
a |
Ay |
y |
Yılın günü |
d |
Gün |
h |
Weekday |
hh |
Hafta |
s |
Saat |
d |
Dakika |
sn |
Saniye |
Haftanın ilk günü bağımsız değişkeni şu ayarlara sahiptir:
Sabit |
Değer |
Açıklama |
---|---|---|
vbUseSystem |
0 |
NLS API ayarını kullanın. |
Vbsunday |
1 |
Pazar (varsayılan) |
vbMonday |
2 |
Pazartesi |
vbTuesday |
3 |
Salı |
vbWednesday |
4 |
Çarşamba |
vbThursday |
5 |
Perşembe |
vbFriday |
6 |
Cuma |
vbSaturday |
7 |
Cumartesi |
Sabit |
Değer |
Açıklama |
---|---|---|
vbUseSystem |
0 |
NLS API ayarını kullanın. |
vbFirstJan1 |
1 |
1 Ocak'ın gerçekleştiği haftayla başlayın (varsayılan). |
vbFirstFourDays |
2 |
Yeni yılda en az dört günü olan ilk hafta ile başlayın. |
vbFirstFullWeek |
3 |
Yılın ilk tam haftasıyla başlayın. |
Açıklamalar
İki tarih arasında belirtilen zaman aralıklarının sayısını belirlemek için DateDiff işlevini kullanabilirsiniz. Örneğin, iki tarih arasındaki gün sayısını veya bugün ile yıl sonu arasındaki hafta sayısını hesaplamak için DateDiff kullanabilirsiniz.
Tarih1 ile tarih2 arasındaki gün sayısını hesaplamak için Yılın günü ("y") veya Gün ("d") kullanabilirsiniz. Aralık Weekday ("w") olduğunda, DateDiff iki tarih arasındaki hafta sayısını verir. Date1 pazartesi gününe denk geliyorsa DateDiff, tarih2'ye kadar olan Pazartesi sayısını sayar. Tarih2 sayılır ancak tarih1 sayılmaz. Ancak aralık Week ("ww") ise , DateDiff işlevi iki tarih arasındaki takvim haftalarının sayısını döndürür. Tarih1 ile tarih2 arasındaki Pazar sayısını sayar. DateDiff , pazar gününe denk geliyorsa date2 sayısını sayar; ancak Pazar günü düşse bile tarih1'i saymıyor.
Tarih1 , tarih2'den sonraki bir noktaya başvuruyorsa, DateDiff işlevi negatif bir sayı döndürür.
Haftanın ilk günü bağımsız değişkeni, "w" ve "ww" aralık simgelerini kullanan hesaplamaları etkiler.
tarih1 veya tarih2 bir tarih dizisi ise, belirtilen yıl bu tarihin kalıcı bir parçası olur. Ancak , tarih1 veya tarih2 çift tırnak işareti (" ") içine alınırsa ve yılı atlarsanız, tarih1 veya tarih2 ifadesi her değerlendirildiğinde geçerli yıl kodunuz içine eklenir. Bu, farklı yıllarda kullanılabilecek kod yazmayı mümkün kılar.
31 Aralık ile hemen sonra gelen yılın 1 Ocak'ını karşılaştırırken, yalnızca bir gün geçmesine rağmen Year için DateDiff ("yy") 1 değerini döndürür.
Not: Tarih1 ve tarih2 için Takvim özellik ayarı Gregoryen ise, sağlanan tarih Gregoryen olmalıdır. Takvim Hicri ise, sağlanan tarih Hicri olmalıdır.
DateDiff Sorgusu örnekleri
Expression |
Sonuçlar |
---|---|
SELECT DateDiff("yyyy",#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales; |
Tarih2 ile Tarih1 (Tarih1'i en eski ve Date2'yi en yeni olarak kabul edin) arasındaki farkı 'Yıl' olarak döndürür. Sonuç: "DateofSale" alanındaki değerler ile "01/01/2010" tarihi arasında 'Yıl' sayısı olarak fark. |
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Sistem tarihi ile "DateofSale" arasındaki farkı 'Quarters' sayısı olarak (takvim yılına göre) döndürür ve "DaysSinceSale" sütununda görüntülenir. sistem tarihi ile "DateofSale" arasındaki farkı 'Ay sayısı' olarak döndürür ve "DaysSinceSale" sütununda görüntülenir. |
SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Sistem tarihi ile "DateofSale" arasındaki farkı 'Days' sayısı olarak döndürür ve "DaysSinceSale" sütununda görüntülenir. |
SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Sistem tarihi ile "DateofSale" arasındaki farkı 'Days' sayısı olarak döndürür ve "DaysSinceSale" sütununda görüntülenir. |
SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Sistem tarihi ile "DateofSale" arasındaki farkı 'Weekdays' sayısı olarak döndürür ve "DaysSinceSale" sütununda görüntülenir. "DateofSale" Pazartesi gününe denk geliyorsa DateDiff, sistem tarihine kadar olan Pazartesi sayısını sayar. Sistem tarihini sayar ancak "DateofSale" içindeki değeri sayar. |
SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Sistem tarihi ile "DateofSale" arasındaki farkı "Takvim Haftaları" sayısı olarak döndürür ve "DaysSinceSale" sütununda görüntülenir. "DateofSale" ile "sistem tarihi" arasındaki Pazar günlerinin sayısını sayar. Pazar gününe denk gelirse sistem tarihini sayar; ancak Pazar günü düşse bile "DateofSale" sayılmaz. |
SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Sistem tarihi ile "DateTime" arasındaki farkı 'Hours' sayısı olarak döndürür ve "DaysSinceSale" sütununda görüntülenir. |
SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Sistem tarihi ile "DateTime" arasındaki farkı 'Minutes' sayısı olarak döndürür ve "DaysSinceSale" sütununda görüntülenir. |
SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Sistem tarihi ile "DateTime" arasındaki farkı 'saniye' sayısı olarak döndürür ve "DaysSinceSale" sütununda görüntülenir. |
İfade örneği
Bir ifadede DateDiff işlevini kullanma İfadeleri kullanabileceğiniz her yerde DateDiff işlevini kullanabilirsiniz. Örneğin, müşteri siparişlerini yerine getirmek için kullandığınız bir formunuz olduğunu varsayalım. Siparişler tablosunda, müşterinin siparişi alması gereken tarihi içeren ReceiveBefore adlı bir alanınız vardır. Siparişin sevk edilmesi gereken günden önceki gün sayısını görüntülemek için DateDiff işlevini formda bir metin kutusuyla kullanabilirsiniz.
Herhangi bir siparişi göndermenin on gün sürdüğünü varsayarsak, metin kutusunun Denetim Kaynağı özelliğini aşağıdaki gibi ayarlarsınız:
=DateDiff("d", Now(), [Orders].[ ReceiveBefore])-10
Formu Form görünümünde açtığınızda, metin kutusu siparişin sevk edilmesi gereken gün sayısını görüntüler. Müşterinin siparişi almasına 10 günden az süre kaldıysa, metin kutusundaki sayı negatiftir ve siparişin hemen gönderilmesi durumunda siparişin kaç gün gecikeceğini gösterir.
VBA örneği
VBA kodunda DateDiff işlevini kullanma
Bu örnekte, belirli bir tarih ile bugün arasındaki gün sayısını görüntülemek için DateDiff işlevi kullanılır.
Dim TheDate As Date ' Declare variables.
Dim Msg TheDate = InputBox("Enter a date") Msg = "Days from today: " & DateDiff("d", Now, TheDate) MsgBox Msg