2011-01-26 9 views
12

Desidero selezionare le righe dal datetime ora fino a 7 giorni in futuro, come posso fare? Leggi molto circa la funzione della data di mysql, ma non mi posso capirlo, questo è il codice di MySQL:Mostra i record da ora() fino ai prossimi 7 giorni in mysql

SELECT id, date_format(datum, '%d/%m') AS date, 
     date_format(datum, '%H:%i') AS time, date 
FROM wedstrijden 
WHERE date >= now() 
ORDER BY datum asc 

che devo fare qualcosa con:

date >= now() till 7 days further 
+0

http://stackoverflow.com/questions/2684520/mysql-date-add-usage-5-day-interval –

risposta

46

vorrei far presente che il modo più elegante sarebbe:

WHERE `date` BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 7 DAY) 

Edit: this doc page è come la cosa più utile mai. Bookmark it, perché è totalmente a portata di mano.

+1

E 'intervallo di 7 "giorno" Penso ;-) grazie ha aiutato – Frank

+0

Ah, è vero ! :-) E tu sei il benvenuto. – TehShrike

+0

hai salvato meh ... stava avendo un sacco di problemi con '...> = DATE_SUB (....)' –

0

Qualcosa di simile:

"...WHERE date >= NOW() AND date <= ADDTIME(NOW(), 168:00:00)..." 

dovrebbe portare a termine quello che stai cercando. Il 168: 00: 00 è un po 'specifico per le tue esigenze, ADDTIME prende qualsiasi formato datetime.

4

è possibile utilizzare il modificatore INTERVAL per aggiungere una settimana per l'ora corrente nel seguente modo:

...WHERE date >= NOW() AND date <= NOW() + INTERVAL 7 DAY; 
+0

Questo è il diritto rispondere con metodo Tehshrike ricevo mysql_error perché non è da qui() e DATE_ADD (NOW(), INTERVALLO 7 gg) ma tra oggi() e DATE_ADD (NOW(), INTERVALLO 7 gIORNI) giorni = giorno – Frank

1

quello che uso per ottenere tutti i dati a partire da 7 giorni indietro fino ad ora dal database:

SELECT * FROM wedstrijden WHERE DATE(date_from_table) > CURDATE() + INTERVAL 7 DAY

Problemi correlati