Timestamp Jahresende
Finde den Unix-Timestamp für die nächste Jahresgrenze und kopiere übliche Datumsbereichswerte für Jahresberichte und Skripte.
Jahresende-Grenze
Für die meisten Datenbankfilter ist die saubere Grenze der Beginn des nächsten Jahres um 00:00:00 UTC. Verwende sie als exklusive obere Grenze: created_at >= yearStart and created_at < nextYearStart.
Warum exklusive obere Grenzen sicherer sind
Exklusive obere Grenzen vermeiden Off-by-one-Sekunden- und Millisekunden-Präzisionsfehler. Sie funktionieren auch sauber über Datenbanken hinweg, die Sekundenbruchteile speichern.
Die Jahresende-Grenze verwenden
Der sicherste Jahresende-Zeitstempel ist der erste Augenblick des nächsten Jahres, verwendet als exklusive obere Grenze. Er stellt den Punkt dar, an dem das aktuelle Jahr endet, ohne davon abzuhängen, ob dein Speicher Sekunden, Millisekunden, Mikrosekunden oder Nanosekunden hält. Das macht denselben Filter portabel über Logs, APIs und SQL-Datenbanken hinweg.
- Verwende created_at < nextYearStart statt created_at <= lastSecondOfYear
- Verwende den Millisekundenwert für JavaScript- und Frontend-Chart-Bereiche
- Verwende den Sekundenwert für Unix-Tools und die meisten Backend-Zeitstempel-Spalten
- Kombiniere den Wert mit yearStart, wenn du vollständige Jahresbereiche prüfst
Den Jahresende-Wert überprüfen
Rechne den kopierten Wert wieder in UTC um und bestätige, dass er für das nächste Jahr der 1. Januar um 00:00:00 ist. Obwohl man es Jahresende nennt, ist diese Grenze absichtlich der erste Augenblick nach dem Jahr, was Datenbankfilter bei Sekunden-, Millisekunden- und Mikrosekundenpräzision sauber hält. Es vermeidet auch die Entscheidung, ob der letzte gespeicherte Datensatz 23:59:59, 23:59:59.999 oder einen feineren Bruchteilwert verwendet.