Ik heb een database met berichten en wil nu graag ook op maand en jaartal kunnen selecteren.
Dit heb ik al geprobeerd maar is niet juist:

<?php
// dit voor ook op jaar te selecteren
$strSQL = "SELECT * FROM tabel WHERE Date LIKE '%-08-2006%'";
?>

Dit werkt wel maar dan selecteer je alleen op de maand:
<?php
// geeft alles van september
$strSQL ="SELECT * FROM tabel WHERE Date LIKE '%-09-%' ORDER BY Date ASC";
?>

Wat moet ik veranderen?
@ Willem_vp : Ja joh inderdaad de date moest zijn datum en dat veranderd dan geen foutmelding meer. Nu krijg ik alleen te zien dat er nog geen berichten zijn en dat is niet waar want er staat al wel wat aan data in voor de maand 09.
@ Lissy: nog even...

Als je veld een varchar was met als format dd-mm-yyyy, dan kun je in 1 keer je hele tabel opruimen. Maak een nieuw veld aan dat datum_goed heet. Het oude veld noem je datum_oud (of je past de naam in mijn voorbeeldquery aan):

UPDATE tabel
SET
datum_goed = CONCAT(SUBSTRING(datum_fout, 7, 4), '-', SUBSTRING(datum_fout, 4, 2), '-', SUBSTRING(datum_fout, 1, 2))

[edit]
het nieuwe veld moet natuurlijk van het type DATE zijn ;-)
[/edit]
lissy schreef op 03.09.2006 11:33
ik heb ook dit geprobeerd:
<?php
$strSQL ="SELECT * FROM tabel WHERE datum LIKE '%-09-2006'";
?>
Die gaat niet werken, omdat de datum eruit ziet als "03-09-2006 (9:15)".

WHERE datum LIKE '%-09-2006%'

zou dus wel moeten werken. Ik heb dit zojuist op mijn eigen servers (MySQL 3.23.53 en 5.0.24) geprobeerd, en hier werkte het. Met je oorspronkelijke query lijkt dus niets mis te zijn.
@ Jan : het is een varchar en staat zo in de tabel: 02-9-2006 (22:17) en naar mijn weten dd-mm-jjjj en tijdstip.

@ Klaasjan : de fout heb ik al opgelost (zie hierboven) :)
Ja, met dingen als 02-9-2006 wordt het lastig voor MySQL ;-)
Draai het sqlletje van Jan of mijn scriptje en doe een datum nooit meer in een VARCHAR.
en de tijd ben je dan wel kwijt BTW
Helder voor het advies en inderdaad heb ik inmiddels een en ander over datum en tijd bijgeleerd dat wanneer er een nieuwe opzet zou komen ik dit anders zou doen :)
BEDANKT voor zover en ik ga nog aan de slag met de aanpassingen :)

@ Willem_vp : ik heb het draaien en vraag me niet waarom het nu wel draait....zal wel de vroege zondagmorgen zijn !!
In iedergeval zoals hierboven staat wederom veel geleerd en zal voor de toekomst een andere oplossing doen !!

Reageren