Datenbank Abfrage Datum maximal x Tage

EuroCent

Klappstuhl 2.0
Hallo zusammen und einen wunderschönen Guten Abend :)

Ich habe folgendes Problem bzw. Suche Ich nach einer Lösung für folgendes:
Ich möchte über eine Liste nur vom aktuellen Datum (ex. 26.02.2017) bis maximal 30 Tage (28.03.2017) angezeigt bekommen.

Meine Abfrage ist derzeit wie folgt:
SQL:
SELECT * FROM working WHERE workDate BETWEEN SUBDATE(NOW(),INTERVAL 31 DAY) AND SUBDATE(NOW(),INTERVAL 1 DAY)

Das Problem ist aber, dass er mir YYYY-mm-dd ausgibt.
Jedoch speichere Ich das Datum als deutsches Format (ex. 00.00.0000).

Gibt es die Möglichkeit der SQL mitzuteilen dass er ein anderes Format verwenden soll, oder ist es besser wenn Ich das Datum wie NOW() hinterlegt abzuspeichern?

Dabei müsste Ich sämtliche Abfragen anpassen und genau dass möchte Ich gerne vermeiden. :)

Würde mich über Beispiele freuen.

Grüße Maik
 
Hast du das Datum momentan in ein Varchar Feld gespeichert?
Wenn ja deutet das schon auf ein unsauberes Datenbank Design hin.

Es ist immer empfehlenswert ein Datum in ein Date oder in ein DateTime Feld zu speichern.

Das Datum kann auch schon vom Sql-Server zum Ausgabe Format umgewandelt werden.
In Mysql mit dem Befehl DATE_FORMAT.

Falls du das Datum in ein Varchar speicherst, da bin ich mir gerade nicht einmal sicher, ob es überhaupt mit between im where Funktioniert.
 
Wenn es als varchar gespeicher ist, dann muss es für den Between zuerst in ein Datum gewandelt werden.
 
@merzi86
Ich verwende mysqli ^^
MySQL ist veraltet :D

Die Abfrage liefert mit die Ergebnisse, wenn das Varchar Feld 0000-00-00 gespeichert wird.
Wenn es im Deutschen Format hinterlegt wird, dann gibt er mir natürlich Null aus.

Das hat denk Ich mal mehr damit zu tun, wie es hinterlegt wurde, nicht welchen Typ es hat. :)

Kann mich aber auch irren.

@Yaslaw
Dann werd Ich es entsprechend mal als Date hinterlegen :)

Bei der Ausgabe dann das Format ändern.

Darauf hätte Ich auch selbst komemn müssen :D
Aber manchmal sieht man vor lauter Bäumen, den Wald nicht ;)
 
Das meinte Ich ja damit :)
Aber das Problem wurde nun behoben :)

Habe das Varchar in ein Date umgewandelt :)
Jetzt muss nur noch die Abfrage erfasst und umgesetzt werden.
 
Zurück