Originariamente inviato da Zlatan94
Quindi devo modificare da d-m-y a y-m-d ?
Siccome non sono bravissimo con l'inglese,
puoi dirmi la query da usare poi?
per gestire con le funzioni "temporali" (data - ora) bisogna che le date siano memorizzate nel formato ansi che poi, guarda caso, presenta la data come se fosse un grande numero dove i valori piu' significativi sono a sx ed i meno significativi a dx, proprio come si comporta un numero.
quindi per poter ordinare i record per data bisogna avere questo benedetto formato ansi. I casi sono due:
ad ogni richiesta fai una conversione della data stringa in una data ansi con str_to_date() oppure "converti" le stringhe in date una volta per tutte.
nel primo caso la query sara' pressapoco cosi':
codice:
select *
from tabella
where str_to_date(campo_data, '%d-%m-%Y') = data da cercare
-- oppure con un range di date (in formato ansi)
where str_to_date(campo_data, '%d-%m-%Y') between '$data_inizio' AND '$data_fine'
per aggiornare la tabella da stringa a data basta una sola query, conviene pero' prima "aggiungere" una colonna in formato data, verificare il buon esito dell'update e poi cancellare il campo stringa.
codice:
update tabella
set data_nuova = str_to_date(data_stringa, '%d-%m-%Y');
-- in pratica dice alla funzione come e' composta la stringa da convertire in data
select *, date_format(nuova_data, '%d-%m-%Y') as data
from tabella
where -- ..... come sopra ma senza l'uso di str_to_date.