von Markus Winand.

Automatisches Umschreiben von Datums- und Zeit-⁠Bereichen


Der folgende Chart zeigt, welche Systeme Where-Klausel-Ausdrücke, die auf die Jahreskomponente einer Date- oder Timestamp-Spalte zugreifen, in Bereichsbedingungen wie ts >= DATE'2024-01-01' AND ts < DATE'2025-01-01' umschreiben.

Db2 (LUW) 12.1.2aaMariaDB 12.0.2MySQL 9.4.0Oracle DB 23.9PostgreSQL 17SQL Server 2022extract(year from …)year(…)datepart(year …)
  1. Wird bedingungslos umgeschrieben – selbst wenn es nur einen passenden funktions-basierten Index gibt

Die gelben Häkchen bedeuten, dass immer umgeschrieben wird – auch wenn ein bestehender funktions-basierter Index1 dadurch nicht mehr genutzt werden kann.

Dieses Umschreiben ist generell anwendbar, sobald auf Basis der signifikantesten Spalten gefiltert wird. Das sind insbesondere auch das Datum aus einer Timestamp- und die Stunde aus einer Time-Spalte.

Db2 (LUW) 12.1.2aaMariaDB 12.0.2MySQL 9.4.0Oracle DB 23.9PostgreSQL 17SQL Server 2022cast(… as date)date(…)extract(hour from …)hour(…)datepart(hour, …)
  1. Wird bedingungslos umgeschrieben – selbst wenn es nur einen passenden funktions-basierten Index gibt

Ich empfehle, solche Abfangen selbst mit dem „inklusive Untergrenze, exklusive Obergrenze“-Rezept umzusetzen.

Achtung

Aufgrund der aktuellen Nutzung von Web-Inhalten zum Training von KI-Modellen werde ich künftig weniger auf meinen Webseiten (inkl. RSS) veröffentlichen. Die Mailing-Listen erhalten weiterhin die vollständigen Artikel. Bei diesem Artikel deutlich mehr Text mit Hintergründen. Vermutlich führe ich früher oder später auch eine Paywall ein – was ich eigentlich nie wollte. Wenn es so weit ist, werden Mail-Abonnenten bevorzugt behandelt werden. Abonniere hier, solange es noch gratis ist.

Du kannst nicht alles an einem Tag lernen. Abonniere den Newsletter via E-Mail, Bluesky oder RSS um sukzessive aufzuholen. Und sieh dir auch modern-sql.com an.

Über den Autor

Foto von Markus Winand

Markus Winand gibt auf modern-sql.com Einblick in SQL und zeigt, wie es von verschiedenen Systemen unterstützt wird. Zuvor machte er use-the-index-luke.com, was er noch immer wartet. Markus kann als Trainer, Sprecher und Berater auf winand.at engagiert werden.

Sein Buch kaufen

Titelbild von „SQL Performance Explained“: Eichhörnchen läuft durchs Grass

Die Essenz: SQL-Tuning auf 200 Seiten

Jetzt Kaufen
(Taschenbuch und/oder PDF)

Sein Training

Markus verwandelt veraltetes SQL-92-Wissen in solides und zeitgemäßes SQL-Know-how

Erfahren Sie mehr»

Fußnoten

  1. Z. B. Personen finden, die morgen Geburtstag haben oder ein Filter nach Wochentag.

  2. Egal ob direkt auf dem Ausdruck oder über eine generierte Spalte.

  3. Der FBI könnte die Spalte ts natürlich zusätzlich enthalten – was für eine Platzverschwendung.

Neuigkeiten Abonnieren

Markus Winands MailinglistenMarkus Winands RSS-FeedMarkus Winand auf LinkedInMarkus Winand auf XINGMarkus Winand auf TwitterMarkus Winand auf Bluesky
Copyright 2010-2025 Markus Winand. Alle Rechte vorbehalten.
Impressum | Kontakt | KEINE GEWÄHR | Handelsmarken | Datenschutz und DSGVO