Ana içeriğe geç

DatetimeDiff

datetimeDiff, belirtilen zaman birimini kullanarak iki tarih-saat değeri arasındaki zaman miktarını alır. Farkın tam birimlerde hesaplandığını unutmayın (aşağıdaki örneğe bakın).

SözdizimiÖrnek
datetimeDiff(tarihSaat1, tarihSaat2, birim)datetimeDiff("2022-02-01", "2022-03-01", "ay")
Belirtilen zaman birimini kullanarak iki tarih-saat arasındaki farkı (tarihSaat2 eksi tarihSaat1) alır.1

Parametreler

tarihSaat1 ve tarihSaat2 şunlar olabilir:

  • Bir zaman damgası sütununun adı,
  • tarih-saat döndüren özel bir ifade veya
  • "YYYY-MM-DD" veya "YYYY-MM-DDTHH:MM:SS" biçiminde bir dize (yukarıdaki örnekte gösterildiği gibi).

birim aşağıdakilerden herhangi biri olabilir:

  • "yıl"
  • "çeyrek"
  • "ay"
  • "hafta"
  • "gün"
  • "saat"
  • "dakika"
  • "saniye"

Yaşı hesaplama

Diyelim ki bir peynir üreticisisiniz ve olgunlaşma sürecinizi takip etmek istiyorsunuz:

PeynirYaşlanma BaşlangıcıYaşlanma SonuOlgun Yaş (Ay)
Provolone19 Ocak 202217 Mart 20221
Feta25 Ocak 20223 Mayıs 20223
Monterey Jack27 Ocak 202211 Ekim 20228

Olgun Yaş (Ay) şu ifadeye sahip özel bir sütundur:

datetimeDiff([Aging Start], [Aging End], "month")

Bir peynirin mevcut yaşını ay olarak hesaplamak için, ikinci tarih-saat parametresi olarak now kullanırsınız, bu şekilde:

datetimeDiff([Aging Start], now, "month")

Bir peynirin mevcut yaşını gün olarak hesaplamak için şunu kullanırsınız:

datetimeDiff([Aging Start], now, "day")

Kabul edilen veri türleri

Veri türüdatetimeDiff ile çalışır
Dize
Sayı
Zaman damgası
Boolean
JSON

Patrona tarafından desteklenen herhangi bir zamansal veri türünden bahsetmek için "zaman damgası" ve "tarih-saat" terimlerini kullanıyoruz. Patrona'daki bu veri türleri hakkında daha fazla bilgi için bkz. Zaman dilimleri.

Zaman damgalarınız veritabanınızda dize veya sayı olarak saklanıyorsa, bir yönetici bunları Tablo Meta Verileri sayfasından zaman damgalarına dönüştürebilir.

Sınırlamalar

datetimeDiff şu anda aşağıdaki veritabanları için kullanılamıyor:

  • Druid

İlgili fonksiyonlar

Bu bölüm, Patrona datetimeDiff ifadesiyle aynı şekilde çalışan fonksiyon ve formülleri kapsar ve kullanım durumunuza en uygun seçeneği nasıl seçeceğinize dair notlar içerir.

SQL

Bir soruyu sorgu oluşturucu kullanarak çalıştırdığınızda, Patrona grafiksel sorgu ayarlarınızı (filtreler, özetler vb.) bir sorguya dönüştürür ve sonuçlarınızı almak için bu sorguyu veritabanınıza karşı çalıştırır.

Peynir örnek verilerimiz PostgreSQL veritabanında saklanıyorsa:

SELECT DATE_PART('month', AGE(aging_end, aging_start)) AS mature_age_months
FROM cheese

Patrona datetimeDiff ifadesine eşdeğerdir:

datetimeDiff([Aging Start], [Aging End], "month")

Snowflake ve BigQuery gibi bazı veritabanları, DATEDIFF veya DATE_DIFF gibi fonksiyonları destekler. Daha fazla bilgi için, yaygın SQL referans kılavuzları listemize göz atın.

Elektronik Tablolar

Peynir örnek verilerimiz "Yaşlanma Başlangıcı" B sütununda ve "Yaşlanma Sonu" C sütununda olan bir elektronik tabloda ise:

DATEDIF(B1, C1, "M")

aynı sonucu üretir

datetimeDiff([Aging Start], [Aging End], "month")

Evet, DATEDIF biraz yanlış görünüyor, ancak elektronik tablo fonksiyonu gerçekten tek "f" ile DATEDIF(), DATEDIFF() değil.

Python

Peynir örnek verilerinin df adlı bir pandas veri çerçevesi sütununda olduğunu varsayarsak, tarihleri doğrudan çıkarabilir ve farkı aylara dönüştürmek için numpy'nin timedelta64'ünü kullanabilirsiniz:

df['Mature Age (Months)'] = (df['Aging End'] - df['Aging Start']) / np.timedelta64(1, 'M')

eşdeğerdir

datetimeDiff([Aging Start], [Aging End], "month")

Daha fazla okuma