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:
Peynir | Yaşlanma Başlangıcı | Yaşlanma Sonu | Olgun Yaş (Ay) |
---|---|---|---|
Provolone | 19 Ocak 2022 | 17 Mart 2022 | 1 |
Feta | 25 Ocak 2022 | 3 Mayıs 2022 | 3 |
Monterey Jack | 27 Ocak 2022 | 11 Ekim 2022 | 8 |
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")