Wieso funktioniert der SQL nicht?

... komplette Frage anzeigen

2 Antworten

Welchen Datentyp hat kd_anlagedatum? Spontan würde ich sagen, dass das Prozentzeichen stört.

Probiers mal mit 

SELECT * FROM firma1_msvc_crm_adressen WHERE DATEDIFF(kd_anlagedatum,'2016-03-17') >=0;

http://stackoverflow.com/questions/318571/in-sql-how-to-compare-date-values

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von weissichnicht0
23.03.2016, 11:49

es lag wirklich am % zeichen. :) Danke

1
Kommentar von Suboptimierer
23.03.2016, 11:55

Reicht es nicht, das Prozentzeichen zu löschen?

1

Wie einer der Vorredner schon meinte, stört hier das % Zeichen.

Wenn man es genau nimmt liegt hier noch ein anderer Fehler vor. Was hier passiert ist ein reiner String vergleich. Was Du hier machst funktioniert nur korrekt weil das Datum im Format Jahr Monat Tag mit führenden nullen als string abgelegt ist. Wenn das Datum hier z.B. im Format Tag Monat Jahr oder Monat Tag Jahr in der Spalte stehen würde, dann würde das nicht mehr korrekt funktionieren.

Beispiel:

Mit Datumsvormat Tag Monat Jahrx währe 20032016 bei einem String Vergleich kleiner als 20122015. Auf einen Datumsvergleich bezogen währe das jedoch falsch.

Von daher währe es besser wenn Du für Datumsangaben die Spalte auch wirkliche als Date Type anlegst und dann wirklich einen Datumsvergleich machst anstatt eines String vergleichs.

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?