DateAdd, DateDiff ve TimeZoneOffset işlevleri
İşlev | Şunlar için geçerlidir: |
---|---|
DateAdd |
|
DateDiff |
|
TimeZoneOffset |
|
Tarih/saat değerlerindeki farkı artırır veya bu farkı bulur ve yerel saat ile UTC arasında dönüştürür.
Açıklama
DateAdd işlevi, bir tarih/saat değerine birim cinsinden bir sayı ekler. Sonuç olarak yeni bir tarih/saat değeri elde edilir. Bir negatif değer belirterek de tarih/saat değerinden, birim cinsinden bir sayı çıkarabilirsiniz.
DateDiff işlevi iki tarih/saat değeri arasındaki farkı döndürür. Sonuç, birim cinsinden bir tamsayıdır.
İki işlev için birimler TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters veya TimeUnit.Years olabilir. Varsayılan olarak, iki işlevde de birim olarak TimeUnit.Days kullanılır.
TimeZoneOffset işlevi, kullanıcının yerel saati ile UTC (Eşgüdümlü Evrensel Saat) arasındaki süreyi dakika cinsinden döndürür.
Kullanıcının yerel saati ile UTC (Eşgüdümlü Evrensel Saat) arasında dönüştürme gerçekleştirmek için TimeZoneOffset ile DateAdd işlevini kullanabilirsiniz. TimeZoneOffset işlevi eklendiğinde yerel saat UTC'ye dönüştürülür, çıkarıldığındaysa (negatif değer eklendiğinde) UTC'den yerel saate dönüştürülür.
Ayrıca daha fazla bilgi için bkz. Date, Time ve DateTime veri türleri ve tarih ve saatler ile çalışma.
Sözdizimi
DateAdd( DateTime, Addition [, Units ] )
- DateTime - Gerekli. Üzerinde çalışılacak tarih/saat değeri.
- Addition - Gerekli. DateTime değerine eklenecek, Birim cinsinden sayı.
- Birim - İsteğe bağlı. Eklenecek Birim türü: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters veya TimeUnit.Years. Belirtilmezse TimeUnit.Days kullanılır.
DateDiff( StartDateTime, EndDateTime [, Units ] )
- StartDateTime - Gerekli. Başlangıç tarih/saat değeri.
- EndDateTime - Gerekli. Bitiş tarih/saat değeri.
- Birim - İsteğe bağlı. Çıkarılacak Birim türü: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters veya TimeUnit.Years. Belirtilmezse TimeUnit.Days kullanılır.
TimeZoneOffset( [ DateTime ] )
- DateTime - İsteğe bağlı. Farkı döndürülecek tarih/saat değeri. Varsayılan olarak, geçerli tarih/saat kullanılır.
Örnekler
Tüm bu örneklerde, geçerli tarih ve saatin 15 Temmuz 2013, 13:02 olduğunu varsayın.
Basit DateAdd
Formül | Açıklama | Sonuç |
---|---|---|
Text( DateAdd( Now(), 3 ), "dd-mm-yyyy hh:mm" ) |
Geçerli tarih ve saate üç gün (varsayılan birim) ekler. | "18-07-2013 13:02" |
Text( DateAdd( Now(), 4, TimeUnit.Hours ), "dd-mm-yyyy hh:mm" ) |
Geçerli tarih ve saate dört saat ekler. | "15-07-2013 17:02" |
Text( DateAdd( Today(), 1, TimeUnit.Months ), "dd-mm-yyyy hh:mm" ) |
Geçerli tarihe bir ay ekler. Today bir saat bileşeni döndürmediği için saat bilgisi görüntülenmez. | "15-08-2013 00:00" |
Text( DateAdd( Now(), ‑30, TimeUnit.Minutes ), "dd-mm-yyyy hh:mm" ) |
Geçerli tarih ve saatten 30 dakika çıkarır. | "15-07-2013 12:32" |
Basit DateDiff
Formül | Açıklama | Sonuç |
---|---|---|
DateDiff( Now(), DateValue("1/1/2014") ) | İki birim arasındaki farkı, varsayılan TimeUnit.Days birimi cinsinden döndürür | 170 |
DateDiff( Now(), DateValue("1/1/2014"), TimeUnit.Months ) | İki değer arasındaki farkı, TimeUnit.Months cinsinden döndürür | 6 |
DateDiff( Now(), Today(), TimeUnit.Minutes ) | Geçerli tarih/saat ile yalnızca geçerli tarih (saat olmadan) arasındaki farkı, dakika cinsinden döndürür. Now, Today değerinden sonra geldiği için sonuç negatif olur. | -782 |
Kesirli sonuçlarla tarih farkı
DateDiff işlevi, yalnızca çıkarılan birimlerin tam sayısını döndürür ve hassasiyet belirtilen birimde verilir. Farkı daha yüksek hassasiyetle hesaplamak için daha küçük bir birim kullanın ve sonucu aşağıdaki örneklerde olduğu gibi daha uygun bir biçimde dönüştürün.
Formül | Açıklama | Sonuç |
---|---|---|
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Hours ) | Dakikalar/saniyeler dikkate alınmaz ve aradaki fark saate kadar olan süreye bağlıdır. | Kategori 1 |
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Minutes )/60 | Farkta dakikalar kullanılır ve farkın saat cinsinden gösterilmesi için sonuç 60'a bölünür. | Kategori 0.5 |
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Seconds )/3600 | Farkta dakikalar ve saniyeler kullanılır; farkın saat cinsinden gösterilmesi için sonuç 3600'e bölünür. | Kategori 0.51 |
UTC'ye dönüştürme
UTC'ye (Eşgüdümlü Evrensel Saat) dönüştürme gerçekleştirmek amacıyla söz konusu saat için TimeZoneOffset işlevi ekleyin.
Örneğin, geçerli tarih ve saatin 15 Temmuz 2013, 13:02 (Pasifik Yaz Saati (PDT, UTC-7)) olduğunu varsayın. UTC olarak geçerli saati belirlemek için şu sözdizimini kullanın:
- DateAdd( Now(), TimeZoneOffset(), TimeUnit.Minutes )
TimeZoneOffset varsayılan olarak geçerli saati alır; bu nedenle ona bağımsız değişken geçirmeniz gerekmez.
Sonucu görmek için Text işlevini dd-mm-yyyy hh:mm biçiminde kullanın. Bu işlemin ardından, 15-07-2013 20:02 sonucu döndürülür.
UTC'den dönüştürme
UTC'den dönüştürmek amacıyla, belirtilen saat için TimeZoneOffset değerini çıkarın (eksi işareti ekleyerek).
Örneğin, 15 Temmuz 2013, 20:02 olan UTC tarih ve saatinin StartTime adlı bir değişkende depolandığını varsayın. Kullanıcının saat dilimine ilişkin saati ayarlamak için şu sözdizimini kullanın:
- DateAdd( StartTime, −TimeZoneOffset( StartTime ), TimeUnit.Minutes )
Farkı eklemek yerine çıkarmak için eksi işaretini TimeZoneOffset değerinin önüne koyun.
Sonucu görmek için, Text işlevini dd-mm-yyyy hh:mm biçiminde kullanın; böylece Pasifik Yaz Saatindeyseniz 15-07-2013 13:02 döndürülür.