sql >> Databáze >  >> RDS >> Mysql

Rozdíly v týdnech mezi PHP a MySQL

Jste na správné cestě, pokud jde o to, jak MySQL funguje, protože máte různé režimy pro funkce související s týdnem, které mohou přinést různé výsledky. http://dev.mysql .com/doc/refman/5.5/en/date-and-time-functions.html#function_week

Chápu, že režim MySQL, který je ekvivalentní logice data PHP, je režim 3, což je norma data týdne podle ISO http://cs.wikipedia.org/wiki/ISO_week_date

Toto má týdny začínající v pondělí a týdny očíslované 1-53.

Takže byste museli použít WEEK(date_field, 3) získat hodnoty kompatibilní s PHP.

Jako alternativní přístup mi přišla užitečná jedna věc v případech, kdy potřebujete možnost flexibilně se dotazovat na různá časová období nebo agregace (Q1-Q4, H1-H2 atd.), nebo kde možná budete potřebovat využít jiné týdny než PHP podporuje použití pomocné tabulky data v MySQL (podobné té, kterou lze použít jako tabulku dimenzí data v datovém skladu, pokud jste s tím obeznámeni). Může vám poskytnout pohodlný stůl, ke kterému se můžete připojit, abyste mohli vyhledat rozsahy dat. Něco takového by mělo fungovat:

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




  1. Kdy použít Common Table Expression (CTE)

  2. Jakou verzi PostgreSQL používám?

  3. SET NULL:Zadejte řetězec, který se má vrátit, kdykoli se v SQLcl / SQL*Plus objeví hodnota Null

  4. Optimalizujte dotaz MySQL, abyste se vyhnuli použití kde; Použití dočasné; Pomocí řazení souborů