Was du da als Uhrzeit-Typ bezeichnest, ist eigentlich keine Uhrzeit, sondern eine Zeitdauer (wie in "Die Maschine läuft seit 56:28:13 (56 Stunden, 28 Minuten und 13 Sekunden).
Woraus entnimmst du das aus der Aufgabenstellung?
Wieso willst du die Definition von SQL-Typen seiner Aufgabenstellung entnehmen?
Das war eine allgemeine Feststellung zum Typ Time, basierend auf der Erfahrung, dass es immer wieder Leute gibt, die Datum und Uhrzeit ohne Grund trennen - und weil auch im vorliegenden Fall kein Grund für die Trennung zu erkennen ist.
Meine Erwähnung, dass man Time durchaus auch als Uhrzeit benutzen kann, hast du natürlich unterschlagen, denn mit dem Zitieren hast du es ja nicht so, du nimmst lieber das, was dir gerade in den Kram passt.
Abfragen nach "suche alle Termine um 12 Uhr" kannst du auch mit hour() auf einer Datetime-Spalte erledigen.
Termine ohne Datum, also "jeden Tag um 12 Uhr", könntest du wahlweise am Datum 0.0.0000 eintragen oder dann tatsächlich mit einer separaten Time-Spalte.Jetzt soll es doch wieder nur ein Zeitpunkt und keine Dauer sein?
Würdest du anständig zitieren anstatt Dinge aus dem Zusammenhang zu reissen, müsstest du nicht so dämliche Fragen stellen. Das:
Überlege dir, warum das nicht so sein soll. Du wirst ja sicher einen Grund für die zwei Spalten gehabt haben.
... steht vor den beiden obigen Absätzen.
Nochmal für dich: Ich kenne den Grund nicht, aus dem er zwei Spalten benutzt. Aus der Aufgabenstellung heraus sehe ich jedenfalls keinen Grund für eine Trennung. Er sollte sich die Trennung daher meiner Meinung nach überlegen.
Zwei mutmaßliche Gesichtspunkte für eine Trennung habe ich mit Kommentar als Denkanstoß angefügt. Nicht mehr, nicht weniger.
Aber wenn man will, kann man sich natürlich auch dummstellen und aus zwei Vorschlägen, in welche Richtung es gehen könnte, absolute Wahrheiten lesen, so wie du es gerade machst.
Wie auch immer, Abfragen, die sich erst Teile von Feldern holen müssen (wie HOUR(...)), können nicht über einen eventuellen Index abgewickelt werden und benötigen einen Full-Table-Scan.
Keine Abfrage, die weitere, indexfähige Felder enthält, benötigt einen Full-Table-Scan. Wo entnimmst du der Aufgabenstellung, dass es bei ihm auf Full-Table-Scans hinauslaufen muss?