sql >> Databasteknik >  >> RDS >> Mysql

Skillnader i veckor mellan PHP och MySQL

Du är på rätt väg med avseende på hur MySQL fungerar, med olika lägen för veckorelaterade funktioner som kan ge olika resultat. http://dev.mysql .com/doc/refman/5.5/en/date-and-time-functions.html#function_week

Det är min uppfattning att MySQL-läget som motsvarar PHPs datumlogik är läge 3, vilket är ISO-veckodatumstandarden http://en.wikipedia.org/wiki/ISO_week_date

Detta har veckor som börjar på måndagar och veckor numrerade 1-53.

Så du skulle behöva använda WEEK(date_field, 3) för att få PHP-kompatibla värden.

Som ett alternativt tillvägagångssätt har jag funnit en sak praktisk i fall där du behöver möjligheten att flexibelt fråga efter olika datumintervall eller sammanställningar (Q1-Q4, H1 - H2, etc.), eller där du kan behöva använda andra veckor än PHP stödjer är att använda en datumhjälpartabell i MySQL (liknande vad man kan använda som en datumdimensionstabell i ett datalager, om du är bekant med det). Det kan ge dig ett bekvämt bord att gå med i för att slå upp datumintervall. Något sådant här borde fungera:

http://databobjr.blogspot.com /2012/06/create-date-dimension-table-in-mysql.html




  1. mySQL konvertera varchar till datum

  2. MySQL-förbättrande prestanda utan cache

  3. Fråga för att lista antalet poster i varje tabell i en databas

  4. Hur man beräknar flera glidande medelvärden i MySQL