2009-09-24 16 views
34

Come selezionare i dati dalla data passata della tabella mysql alla data corrente? Ad esempio, seleziona i dati dal 1 gennaio 2009 fino alla data attuale ??Seleziona query mysql tra data?

La mia colonna "datetime" è in tipo data e ora. Si prega di aiuto, grazie

Edit:

Se diciamo voglio ottenere giorno per giorno i dati dal 1 gennaio 2009, come scrivere query? Usa il conteggio e tra le funzioni?

risposta

54
select * from *table_name* where *datetime_column* between '01/01/2009' and curdate() 

o utilizzando >= e <=:

select * from *table_name* where *datetime_column* >= '01/01/2009' and *datetime_column* <= curdate() 
+0

Freddo. Funziona. ULTIMA domanda: se voglio mostrare i dati al giorno dal 01/01/2009, è necessario utilizzare la funzione di conteggio giusto? Qualche idea su come implementare? –

+0

Puoi usare "raggruppa per" e "ordina per", come questo: seleziona * da [nome_tabella] dove [data_colonna] tra '01/01/2009 'e gruppo oggetto() datetime_column] di [data_colonna] –

+0

ho provato questo: SELECT *, count (*) dalla tabella WHERE datetime TRA '2009-01-01' E '2009-09-01' GROUP BY datetime; ma il conteggio è 1. dovrebbe essere, 10, 5, 8 ecc ... –

12

È possibile utilizzare now() come:

Select data from tablename where datetime >= "01-01-2009 00:00:00" and datetime <= now(); 
19

Tutte le opere di cui sopra, e qui è un altro modo, se si desidera solo per il numero di giorni/tempo indietro piuttosto una data di inserimento

select * from *table_name* where *datetime_column* BETWEEN DATE_SUB(NOW(), INTERVAL 30 DAY) AND NOW() 
+0

Questo è abbastanza pulito! – frankster

+0

Questo funziona alla grande! – lucasarruda