Il tipo DATE di MySQL è solo Y-m-d (non me lo fa salvare con il formato m-d-y).. A mio avviso dovresti salvare le date con il formato appena espresso fare tutte le operazioni e solo dopo la conversione del formato..
Ricapitolando
1)Data memorizzata con tipo DATE 2016-01-30
2)Ordinamento direttamente sul campo e non l'eventuale alias.
Ipotizziamo una tabella di nome prova e un campo (DATE) di nome datainizio... Ecco il codice seguente
Codice:
select DATE_FORMAT(datainizio,'%d-%m-%Y') as inizio FROM prova WHERE YEAR(datainizio) = YEAR('2016-01-30') AND MONTH(datainizio) = MONTH('2016-01-30') ORDER BY datainizio ASC LIMIT 0, 25;
Nota* si può utilizzare YEAR(NOW()) e MONTH(NOW()) ottenenendo anno e mese corrente
La query precedente illustrata (quella sopra il mio post) risulta sempre vera dato che si verifica il tempo attuale del server uguale il tempo attuale immesso (non è in correlazione con il campo datainizio).
Altro particolare..
Il codice da me proposto è stato adattato ma il merito è tutto di html.it http://www.html.it/articoli/funzioni...o-con-mysql-1/