Thomas Schmieder: Mustervergleich bei MS SQL7.0

Beitrag lesen

Hallo Andi,

laut SQL-Doku sollte man mit LIKE auch DATETIME-Spalten durchsuchen koennen.
Versuche ich z.B. folgendes Statement
select * from tabelle1 where datum like '%13%'
kommen alle Tabelleneintraege, wo im Datum eine 13 auftaucht.
Auch wenn ich folgende Abfrage mache, erhalte ich korrekt alle Eintraege des Monats Juni:
select * from tabelle1 where datum like '%Jun%'

Ich moechte aber gezielt nach einem Datum suchen und das funktioniert nicht, sollte aber nach der Hilfebeschreibung des SQL-Servers gehen:
select * from tabelle1 where datum like '2002-06-13%'

nach meiner Literatur werden die Datentypen Datetime und Smalldatetime intern als Referenzzahl gespeichert, Der Datumsanteil seit dem 01.01.1900 als Tagesnummer (1,5Byte) und die Zeit als Sekunden seit Mitternacht (2,5 byte) bzw Minuten bei Smalldatetime (1,5 Byte). Diese merkwürdige Datumsdarstellung stammt wohl noch aus der Zeit, als Speicherplatz knapp war und man mit HighNibble und LowNibble gearbeitet hat (DOS 2.0 FAT 12).

Die Auflösung findet erst beim Ansprechen des Feldes statt. Da rechnet der Server dann alle möglichen Schablonen aus und vergleicht die von Dir übergebene damit. Demnach müßte man also auch vorne ein % setzen.

Es müßte also keine Jahreszahl gt 5995 möglich sein.

Probiers mal aus.

Tom