Anmelden

View Full Version : SQL Datumsvergleich Erster Tag Vormonat und letzter Tag Vormonat



sven70
03-11-22, 08:47
Moinsen,
ich erstelle jeden Monat eine Auswertung mit den Daten aus dem Vormonat.
Jetzt möchte ich aber nicht jedes Mal die Werte hart im SQL anpassen sondern
das automatisch laufen lassen.

Hier mein SQL:
select * from file
where
bdat >= LAST_DAY(CURRENT DATE - 2 MONTHS) + 1 DAY
AND bdat < LAST_DAY(CURRENT DATE - 1 MONTH) + 1 DAY

Ist vereinfacht dargestellt. Er kommt aber auf folgenden Fehler
Fehler: [SQL0401] Operanden des Vergleichsoperators >= sind nicht kompatibel.

Das bdat ist Typ S 8,0 vom Format.
YYYYMMDD

Wo mache ich den Denkfehler?

Danke für eure Hilfe.

Robi
03-11-22, 08:53
was hier falsch ist oder nicht, sagt dir gleich das


select LAST_DAY(CURRENT DATE - 2 MONTHS) + 1 DAY from igendeinedatei


ist das YYYYMMDD?


siehste

Andreas_Prouza
03-11-22, 08:55
Du müsstest entweder BDAT in ein DATE konvertieren oder das Datum in ein INT.
Um mögliche Indices zu verwenden würde ich das Datum in ein INT umwandeln:


select * from file
where
bdat >= cast (LAST_DAY(CURRENT DATE - 2 MONTHS) + 1 DAY as int)
AND bdat < cast(LAST_DAY(CURRENT DATE - 1 MONTH) + 1 DAY as int)

lg Andreas

sven70
03-11-22, 09:52
Vielen Dank. Passt mit dem int.
Mal wieder etwas dazu gelernt.

sven70
03-11-22, 09:52
Das Datum ist YYYY-MM-YY.
Habe es aber der Antwort von Andreas hinbekommen.
Danke.