[mySQL] Suchanfrage mit Typ date

C22

Mitglied
Hallo Forum,
ich habe im meiner Tabelle mehrere Felder des Typs 'date'. Jetzt möchte ich eine Suchfunktion implementieren mit der ich Datensätze finde deren date Feld zwischen zwei ausgewählten Datums liegt.
Ich werde das mit 2 popup datepicker-felder realisieren.
Das soll dann etwa so aussehen:
Suche alle Datensätze deren Fälligkeit zwischen 1.1.2005 und 31.1.2005 liegt.
Die Datums setze ich dann mit einer kleinen php Funktion in das richtige mySQL date Format um.

Wie sieht die dazugehörige SQL Query aus bezgl. des Datentyps 'date'?

mfg.
 
Hi,
die where Klausel müsste in etwa so aussehen:

Code:
where datediff(datespalte, '[vonDatum]') >= 0 and datediff(datespalte, '[bisDatum]') <= 0

Jetzt würde er nur die Sätze zurückgeben die zwischen diesen beiden oder gleich diesen Daten sind. Um eben nur die dazwischen zu bekommen müsste man natürlich die = Zeichen wegnehmen.

Gruß
 
Wenn Du sie in das korrekte Format gewandelt hast, sollte es auch so funktionieren:
Code:
where datumsFeld >= '20050101' and datumsFeld <= '20050131'
Gruß hpvw
 
bin jetzt mal endlich dazu gekommen, aber irgendwie funktioniert es noch nicht.

Was ist denn an dem SQL falsch :
Code:
SELECT * FROM bestellungen where datediff(Lieferdatum, '2006-01-01') >= 0 and datediff(Lieferdatum, '2006-01-31') <= 0

Lieferdatum hat das Format 'date'.
 
Hi,
kann eigentlich nur daran liegen das die Formate nicht identisch sind. Probier mal "Lieferdatum" in das selbe Format zu bringen, zB mit date_format(Lieferdatum, '%Y-%m-%d)....

Gruß
 
Ich denke das Zauberwort heisst: Beetween...
2005-01-01 beetween 2005-01-31
oder beetween 2005-01-01 AND 2005-01-31
weiß jetzt nicht so genau die Syntax
aber Beetween (zwischen)
damit habe ich mal DS nach Alter selektiert
 
Moin, also am Format liegt es nicht. Es ist immer YYYY-MM-DD.

Ich bin noch am testen aber ich glaube so geht es :
Code:
SELECT * FROM bestellungen  WHERE Lieferdatum >= '$start' AND Lieferdatum <= '$stop'
 

Neue Beiträge

Zurück