Ecco il mio codice finora:Come selezionare UNIX date = "2010" nella query mysql?
SELECT `date`, title, category, url
FROM cute_news
WHERE category = '4'
ORDER BY `date` DESC
voglio rendere le pagine in base all'anno, come 2010, 2009, 2008 e così via. Il database salva la data come UNIX_Timestamp. Non sei sicuro di come interrogare un recordset con un parametro Year?
WHERE unix_timestamp(YEAR) = '2010' or something???
Grazie in anticipo. Sono sconcertato.
Perfetto :-) Sapevo che mi mancava qualcosa di semplice ha. – eberswine
@eberswine: tieni presente che una tale query sarà lenta se avrai molte righe nella tabella. Il database dovrebbe eseguire una scansione completa della tabella per filtrare le righe che si desidera ... D'altra parte, se si crea un indice sulla colonna 'date' (supponendo che uno non esiste già), è possibile utilizzare il Funzione 'UNIX_TIMESTAMP()' come nel secondo esempio nella mia risposta. Il database sarebbe quindi in grado di utilizzare l'indice per trovare rapidamente le righe che si desidera senza eseguire una scansione completa della tabella. –
@Daniel, questo è vero se il campo della data è il miglior discriminatore. Spesso lo è, e naturalmente, non c'è nulla di male nel dare a MySQL l'opzione tramite la tua raccomandazione, anche se non ne ha bisogno. – Matthew