Gå til innhold

filtrere poster utifra datofeltet i tabell


Anbefalte innlegg

Jeg prøver å lage meg et lite bursdagsscript for å holde orden på bursdager.

Jeg har en tabell der jeg legger inn navn, epost og fødselsdato.

datofeltet er satt som date og jeg skriver derfor inn fødselsdatoen slik "1974-10-11"

 

Det jeg ønsker å gjøre er å hente ut en liste over personer som har bursdag 30 dager frem i tid. Jeg ønsker å gjøre selekteringen gjennom en MYSQL query i stedet for å gjøre det i PHP. Problemet er at jeg ikke vet hvordan jeg kan håndtere datofeltet. Er det mulig å sette inn en wildcard alle datte

 

Where bursdagsdato = '*-10-*'

(denne skal da hente ut alle som har bursdag i oktober (10)

Lenke til kommentar
Videoannonse
Annonse

Mener du kan bruke noe slikt:

 

WHERE bursdagsdatao LIKE "____-10-__"

 

mulig det også fungere med '*' istede for '_'

 

Men dette vil jo bare gi de som har bursdag i en bestemt måned og ikke 30 dager frem i tid. Man kan bruke <>= for å operere på DATE i mySQL så dersom du i php scriptet beregner en dato 30 dager frem i tid så kan du bruke dette.

 

WHERE bursdagsdato <= DATE_ADD(CURDATE(),INTERVAL 30 DAY) 
AND bursdagsdato >= CURDATE();

 

-/maskefjes

Lenke til kommentar

Det har du helt rett i, overså det :blush:

 

Tror du kan benytte RIGHT(str, len) funksjonen som returnerer de len antall bokstavene til høyre i str. Da får vi noe slikt som dette:

 

WHERE RIGHT(bursdagsdato, 5) <= RIGHT(DATE_ADD(CURDATE(),INTERVAL 30 DAY),5) 
AND RIGHT(bursdagsdato, 5) >= RIGHT(CURDATE(), 5);

 

Har ikke noe db tilgjengelig så jeg får desverre ikke testet dette....

 

-/maskefjes

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...