sql >> Database teknologi >  >> RDS >> Mysql

Fra tidsstemplet i SQL, valg af poster fra i dag, i går, denne uge, denne måned og mellem to datoer php mysql

Hvis du kun vælger efter dato, skal du basere dine beregninger på CURDATE (som kun returnerer dato) i stedet for NOW (som returnerer dato og klokkeslæt). Disse eksempler vil fange alle tidspunkter inden for dagintervallerne:

  • I dag:WHERE timestamp >= CURDATE()
  • I går:WHERE timestamp >= DATE_SUB(CURDATE(), INTERVAL 1 DAY) AND timestamp < CURDATE()
  • Denne måned:WHERE timestamp >= DATE_SUB(CURDATE(), INTERVAL DAYOFMONTH(CURDATE())-1 DAY)
  • Mellem de to datoer 3. juni 2013 og 7. juni 2013 (bemærk, hvordan slutdatoen er angivet som 8. juni, ikke 7. juni):WHERE timestamp >= '2013-06-03' AND timestamp < '2013-06-08'

"denne uge" afhænger af, hvilken dag du starter din uge; Det overlader jeg til dig. Du kan bruge DAYOFWEEK funktion til at justere CURDATE() til de rigtige områder.

Tillæg :OP's kolonnetype var INTEGER , gemmer et UNIX-tidsstempel, og mit svar antog, at kolonnetypen var TIMESTAMP . Her er, hvordan du gør alle de samme ting med en UNIX-tidsstempelværdi og stadig opretholder optimering, hvis kolonnen er indekseret (som svarene ovenfor vil gøre, hvis TIMESTAMP kolonne er indekseret)...

Grundlæggende er løsningen bare at indpakke start- og/eller slutdatoerne i UNIX_TIMESTAMP funktion:

  • I dag:WHERE timestamp >= UNIX_TIMESTAMP(CURDATE())
  • I går:WHERE timestamp >= UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 DAY)) AND timestamp < UNIX_TIMESTAMP(CURDATE())
  • Denne måned:WHERE timestamp >= UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL DAYOFMONTH(CURDATE())-1 DAY))
  • Mellem de to datoer 3. juni 2013 og 7. juni 2013 (bemærk, hvordan slutdatoen er angivet som 8. juni, ikke 7. juni):WHERE timestamp >= UNIX_TIMESTAMP('2013-06-03') AND timestamp < UNIX_TIMESTAMP('2013-06-08')



  1. MySQL LN() Funktion – Returner den naturlige logaritme af et tal

  2. Sådan opretter du PL/SQL svag ref-markør i Oracle-databasen

  3. Brug af flere PostgreSQL-skemaer med Rails-modeller

  4. Django, efter opgradering:MySQL-serveren er forsvundet