ursus contionabundo: WHERE in einem Datum

Beitrag lesen

Tach!

ist es möglich ein WHERE bzw. ein AND auf ein Datum anzuwenden, aber nur auf das Jahr bezogen?

Ja, MySQL hat Datums- und Uhrzeit-Funktionen, die nicht nur das Jahr aus einem Datum extrahieren können.

Allerdings kann sich

SELECT `foo`, `bar` from `tabelle` where YEAR(`datum`) = 2018;

negativ auf das Laufzeitverhalten auswirken. Grund: Die Formel umfasst eine Tabellenspalte, die indexiert sein könnte, es muss aber ein Fulltable-Scan gemacht werden:

Also ist das hier ggf. schneller:

SELECT `foo`, `bar` from `tabelle` where `datum` BETWEEN "2018-01-01" AND "2018-12-31";