Ich benutze Esper & Ich muss Ereignisse nach ihrem Zeitstempel filtern. Die Ereignisse kommen von einer externen Quelle.Wie kann ich Esper-Abfragen eine Zeitzone hinzufügen?
Die Herausforderung besteht darin, dass der Abschaltzeitpunkt sich in einer anderen Zeitzone befindet als der Zeitstempel des Ereignisses, z. der Cut-off-Zeitpunkt ist um 3:30 Uhr MEZ (z. B. Prager Zeit), während das Zeitstempelfeld des Ereignisses um UTC ist.
Dies wirft ein Problem auf, wenn die Zeitzone in die Sommerzeit verschoben wird, da der Cutoff-Zeitpunkt in der Abfrage geändert werden muss. Z.B. In diesem Fall, wenn der Cut-off-Zeitpunkt 3:30 Uhr MEZ ist, ist es im Winter um 2:30 Uhr UTC und während der Sommerzeit um 1:30 Uhr UTC. Das bedeutet, dass ich die Abfrage ändern muss, wenn sich die Zeit in DST verschiebt.
Dies ist die aktuelle Abfrage:
SELECT *
FROM my_table
WHERE timestamp_field.after(timestamp.withtime(2,30,0,0))
Ich mag würde eine robuste Lösung, die mir den Aufwand des Wechsels die Cutoff-Zeitstempel speichern werden alle paar Monate Abfragen. Kann ich die Zeitzone zur Abfrage selbst hinzufügen? Gibt es eine andere Lösung?
Der Zeitstempel der Ereignisse ist in UTC angegeben. Das Problem ist, dass der Cutoff-Zeitpunkt zeitzonenabhängig ist. – Amnon
Berechnen Sie den Cut-Off-Zeitpunkt aus dem Ereignis, wenn das Ereignis die Zeitzone enthält? – user650839
Nein. Ich habe einen Strom von Ereignissen und mehrere Abfragen, um diejenigen herauszufiltern, die von Interesse sind. Bei den Abfragen ist die Sperrzeit fest codiert, aber die Zeitzone ist nicht enthalten. Daher muss ich alle 6 Monate eine aktualisierte Abfrage laden. Ich möchte das vermeiden, indem ich die Zeitzone irgendwie in der Abfrage verwende. – Amnon