Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043

    query date di nascita dei prossimi 7 giorni

    Ciao, nel mio sito vorrei mettere un elenco degli iscritti che nei prossimi 7 giorni compieranno gli anni, ho fatto così ma non mi stampa nulla, invece se tolgo + INTERVAL 7 DAY funziona, però ovviamente solo i compleanni del giorno odierno. Dove sbaglio? Come poter avere stampati i compleanni dei prossimi 7 giorni?

    Codice PHP:
    SELECT a_login.*, a_anagrafica.*, YEAR(curdate()) - YEAR(a_anagrafica.data_nascita) as etaDATE_FORMAT(a_anagrafica.data_nascita'%d-%m-%Y') AS data_nascita  
                
                FROM 
    (a_login 
                
                INNER JOIN a_anagrafica
                ON a_login
    .id_anagrafica a_anagrafica.id_anagrafica)
                
                
    WHERE DATE_FORMAT(a_anagrafica.data_nascita'%m/%d') = DATE_FORMAT(CURDATE() + INTERVAL 7 DAY'%m/%d')
                
                
    ORDER BY a_anagrafica.data_nascita ASC 

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Prova così:

    codice:
    select * from tabella
    where date_format(data_nascita,"%m-%d") between 
    date_format(curdate(),"%m-%d") 
    and date_format(curdate()+interval 7 day,"%m-%d")

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    Originariamente inviato da nicola75ss
    Prova così:

    codice:
    select * from tabella
    where date_format(data_nascita,"%m-%d") between 
    date_format(curdate(),"%m-%d") 
    and date_format(curdate()+interval 7 day,"%m-%d")
    Ho potuto provare solo adesso.

    Funziona! GRAZIE!!

  4. #4
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Sì però mi piacerebbe sapere perché usate una funzione di formattazione per fare un confronto....

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da luca200
    Sì però mi piacerebbe sapere perché usate una funzione di formattazione per fare un confronto....
    Ciao Luca, come va?
    Tu come la scriveresti?

    edit.
    Le alternative che mi vengono in mente sono queste due:

    codice:
    select * from tabella
    where concat(year(curdate()),'-',substring(data_nascita,-5)) between 
    curdate() and curdate()+interval 7 day
    
    select * from tabella
    where datediff(concat(year(curdate()),'-',substring(data_nascita,-5)),curdate()) 
    between 0 and 7
    Tu avevi in mente qualcos'altro?

  6. #6
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Mi sa che sono stato un po' superficiale

    Non avevo considerato la difficoltà dell'estrarre solo giorno e mese dalla data di nascita. Effettivamente mi sa che non ci si riesce, senza ricorrere a funzioni che usano stringhe

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Ok. Temevo di aver scritto qualche boiata.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.