Ana içeriğe geç

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:

EtkinlikVarma ZamanıAyrılma Zamanı
İçecekler12 Kasım 2022 18:3012 Kasım 2022 18:00
Akşam Yemeği12 Kasım 2022 20:0012 Kasım 2022 19:30
Dans13 Kasım 2022 00:0012 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.

EtkinlikVarma ZamanıAyrılma ZamanıYolda mıyım?
İçecekler12 Kasım 2022 18:3012 Kasım 2022 18:00Hayır
Akşam Yemeği12 Kasım 2022 20:0012 Kasım 2022 19:30Evet
Dans13 Kasım 2022 00:0012 Kasım 2022 23:30Hayı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.

Patrona ifadeleri

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")

Daha fazla okuma