selezionare prossima data da database

  • Creatore Discussione Creatore Discussione asevenx
  • Data di inizio Data di inizio

asevenx

Utente Attivo
7 Nov 2009
312
0
16
Salve. Ho una tabella nel mio database con un elenco di date (formato gg/mm/aaaa). Come faccio in php/mysql a selezionare la data più vicina alla data odierna? (ne devo selezionare solo una).

GRAZIE
 
ciao
non ho mai provato, ma puoi fare delle prove con una query del genere

Codice:
SELECT data  FROM tabella ORDER BY DATEDIFF(data, $data_1) LIMIT 1

e vedere se qualcosa funzia

penso comunque che tu abbia dei problemi, credo che le date debbano essere nel formato aaaa/mm/gg e non gg/mm/aaaa

provo anche a chiedere a qualche altro
 
Ciao, le funzioni mysql come datediff() funzionano solo se le date sono salvate nei formati DATE, DATETIME o TIMESTAMP
in questo caso (formato gg/mm/aaaa) probabilmente sono in formato testo, di conseguenza bisogna prima convertirle nel formato di mysql (aaaa-mm-gg) con STR_TO_DATE.
Se ho capito bene puoi provare cosi
Codice:
SELECT * FROM tabella WHERE STR_TO_DATE(data,'%d/%m/%Y') >= CURDATE() ORDER BY STR_TO_DATE(data,'%d/%m/%Y') ASC LIMIT 1
la query estrae le date maggiori o uguali a oggi (CURDATE()) , le ordina in modo crescente e restituisce la più vicina
 
Ultima modifica:

Discussioni simili