Ich habe eine Tabelle mit Daten formatiert als Zeichenfolgen in der folgenden Weise YYYY-MM-DD. Die Daten enthalten mehrere Jahre im Wert von Daten und ich würde nur das aktuelle Jahr ziehen, wie die folgende Abfrage verwenden:SQL Server - Where Like-Anweisung mit Variable, die keine Ergebnisse zurückgibt
Declare @currentYear VARCHAR(5)
Select @currentYear = year(getdate())
select *
from tablename
where datefixed like @currentYear
Die Abfrage oben wird keine Ergebnisse zurück. Ich habe versucht, die Methodik in diesem Thema beschrieben: Using variable in SQL LIKE statement
Ich vermisse etwas, aber ich kann nicht meinen Finger darauf legen.
Sie versuchen, wie für Strings für ein Datum verwendet verwendet versuchen Sie zwischen startdate und endDate – RegBes
Wir sollten Hören Sie auf, Fragen zu beantworten, bei denen OP um Hilfe bittet, um ihr unordentliches Datenbankdesign auf Abfrageebene zu beheben. Vielleicht fangen sie dann an, den richtigen Typ zu verwenden. Normalerweise wäre die Abfrage einfach: 'WHERE YEAR (Datumsangabe) = YEAR (GETDATE())' –
Danke @TimSchmelter. Unser neues Design verwendet yyyymmmdd, was die Verwendung von zwischen und einfachen Anweisungen ermöglicht. –