disign.it | Mysql: selezionare anno o mese da campo timestamp | a digital sign for a best design!
A digital sign for a best design
Programmazione 4.185 visualizzazioni

Mysql: selezionare anno o mese da campo timestamp

12/03/2012

Solitamente i campi data vengono gestiti con la memorizzazione del valore di unix time e pertanto per effettuare delle selezioni sulla base di mese o anno prescelto dall'utente occorre passarre attraverso operazioni di conversione.
Pochi conoscono la funzione di MySql FROM_UNIXTIME che converte un valore numerico di UNIX timestamp in data e orario nel formato 'YYYY-MM-DD HH:MM:SS'(stringa) oppure YYYYMMDDHHMMSS.uuuuuu (numerico).
Se utilizziamo questa funzione possiamo fare la selezione senza passare da acrobatiche e spesso lunghe, conversioni.

Mettiamo, ad esempio, di voler selezionare tutti i recordi che sono datati 2012, la query sarà semplicemente:

SELECT * FROM nome_tabellla where from_unixtime(dat,'%Y') = 2012

La query può anche esser impostata con condizioni multiple, ad esempio tutti i record del marzo 2012

SELECT * FROM nome_tabella where (from_unixtime(dat,'%Y') = '2012' && from_unixtime(dat,'%m') = '3')

e per fare automaticamente la selezione di mese e anno corrente

$mese =  date("m");
$anno =  date("Y"); 
$query = "SELECT * FROM nome_tabella where (from_unixtime(dat,'%Y') = $anno && from_unixtime(dat,'%m') = $mese";

← Autoauguri Direttore ! SQL: le reg exp →

Invia una domanda o un commento sull'articolo

I campi obbligatori sono segnalati *

*

*



 

© 2009 - 2017 Impronte digitali di Luca Frassineti. Tutti i diritti riservati.