DatetimeSubtract
datetimeSubtract
, bir tarih-saat değerinden belirli bir zaman birimini çıkarır. Bu fonksiyonu, oturumlar veya abonelik verileri gibi "başlangıç" ve "bitiş" ile işaretlenmiş zaman serisi verileriyle çalışırken kullanmak isteyebilirsiniz.
Sözdizimi | Örnek |
---|---|
datetimeSubtract(sütun, miktar, birim) | datetimeSubtract("2021-03-25", 1, "ay") |
Bir zaman damgası veya tarih değerini alır ve belirtilen sayıda zaman birimini çıkarır. | 2021-02-25 |
Parametreler
sütun
aşağıdakilerden herhangi biri 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"
- "gün"
- "saat"
- "dakika"
- "saniye"
- "milisaniye"
miktar
:
- Bir tamsayı. Kesirli değerler kullanamazsınız. Örneğin, "yarım yıl" (0.5) çıkaramazsınız.
- Negatif bir sayı olabilir:
datetimeSubtract("2021-03-25", -1, "ay")
2021-04-25
döndürür.
Bir başlangıç tarihi hesaplama
Diyelim ki eğlenceli bir gece planlıyorsunuz. Bir yerden bir yere gitmenin 30 dakika sürdüğünü biliyorsunuz ve her rezervasyonunuza yetişmek için ne zaman ayrılmanız gerektiğini bulmanız gerekiyor:
Etkinlik | Varma Zamanı | Ayrılma Zamanı |
---|---|---|
İçecekler | 12 Kasım 2022 18:30 | 12 Kasım 2022 18:00 |
Akşam Yemeği | 12 Kasım 2022 20:00 | 12 Kasım 2022 19:30 |
Dans | 13 Kasım 2022 00:00 | 12 Kasım 2022 23:30 |
Burada, Ayrılma Zamanı şu ifadeye sahip özel bir sütundur:
datetimeSubtract([Varma Zamanı], 30, "dakika")
Geçerli tarih-saatin bir aralıkta olup olmadığını kontrol etme
Diyelim ki geçerli tarih-saatin bir başlangıç tarihi ile bir bitiş tarihi arasında olup olmadığını kontrol etmek istiyorsunuz. "Geçerli" tarih-saatin 12 Kasım, 19:45 olduğunu varsayalım.
Etkinlik | Varma Zamanı | Ayrılma Zamanı | Yolda mıyım? |
---|---|---|---|
İçecekler | 12 Kasım 2022 18:30 | 12 Kasım 2022 18:00 | Hayır |
Akşam Yemeği | 12 Kasım 2022 20:00 | 12 Kasım 2022 19:30 | Evet |
Dans | 13 Kasım 2022 00:00 | 12 Kasım 2022 23:30 | Hayır |
Ayrılma Zamanı şu ifadeye sahip özel bir sütundur:
datetimeSubtract([Varma Zamanı], 30, "dakika")
Yolda mıyım? geçerli tarih-saatin (şimdi) Varma Zamanı ve Ayrılma Zamanı içindeki tarih-saatler arasında olup olmadığını kontrol etmek için case kullanır:
case(between(now, [Ayrılma Zamanı], [Varma Zamanı]), "Evet", "Hayır")
Kabul edilen veri türleri
Veri türü | datetimeSubtract 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
MongoDB kullanıyorsanız, datetimeSubtract
yalnızca sürüm 5 ve üstünde çalışır.
İlgili fonksiyonlar
Bu bölüm, Patrona datetimeSubtract
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.
Diğer araçlar
datetimeAdd
datetimeSubtract
ve datetimeAdd
birbirinin yerine kullanılabilir, çünkü miktar
için negatif bir sayı kullanabilirsiniz. Etkinlikler örneğimiz için her iki ifadeyi de kullanabiliriz, ancak "çift negatiflerden" (örneğin, negatif bir sayı çıkarmak) kaçınmalısınız.
datetimeAdd([Varma Zamanı], -30, "dakika")
şununla aynı şeyi yapar
datetimeSubtract([Varma Zamanı], 30, "dakika")
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.
Etkinlikler örnek verilerimiz bir PostgreSQL veritabanında saklanıyorsa:
SELECT arrive_by - INTERVAL '30 minutes' AS depart_at
FROM events
Patrona datetimeSubtract
ifadesine eşdeğerdir:
datetimeSubtract([Varma Zamanı], 30, "dakika")
Elektronik Tablolar
"Varma Zamanı"nın A sütununda tarih-saat formatında olduğu bir elektronik tabloda etkinlikler örnek verilerinin olduğunu varsayarsak, elektronik tablo fonksiyonu
A:A - 30/(60*24)
şununla aynı sonucu üretir
datetimeSubtract([Varma Zamanı], 30, "dakika")
Çoğu elektronik tablo, farklı zaman birimleri için farklı hesaplamalar kullanmanızı gerektirir (örneğin, bir tarihten "gün" çıkarmak için farklı bir hesaplama kullanmanız gerekir). datetimeSubtract
, tüm bu fonksiyonları tek bir tutarlı sözdizimine dönüştürmenizi kolaylaştırır.
Python
Etkinlikler örnek verilerimiz pandas
veri çerçevesi sütununda df
olarak bulunuyorsa, datetime
modülünü içe aktarabilir ve timedelta
fonksiyonunu kullanabilirsiniz:
df['Ayrılma Zamanı'] = df['Varma Zamanı'] - datetime.timedelta(dakika=30)
şununla eşdeğerdir
datetimeSubtract([Varma Zamanı], 30, "dakika")