Du kan bruge både ÅR(tidsstempel)
og WEEK(timestamp )
, og brug begge disse udtryk i SELECT
og GROUP BY
klausul.
Ikke alt for elegant, men funktionel...
Og du kan selvfølgelig også kombinere disse to datodele i et enkelt udtryk, altså noget i stil med
SELECT CONCAT(YEAR(timestamp), '/', WEEK(timestamp)), etc...
FROM ...
WHERE ..
GROUP BY CONCAT(YEAR(timestamp), '/', WEEK(timestamp))
Rediger :Som Martin påpeger
du kan også bruge
Rediger 2 [3 1/2 år senere!]:YEARWEEK(mysqldatefield)
med det valgfrie andet argument (tilstand
) sat til enten 0 eller 2 er sandsynligvis den bedste måde at aggregere ved at fuldføre uger (dvs. inklusive for uger, der strækker sig over 1. januar), hvis det er det, der ønskes. ÅR() / UGE()
tilgang, der oprindeligt blev foreslået i dette svar, har den virkning, at de aggregerede data for en sådan "grænseflade" opdeles uger i to:en med det tidligere år, en med det nye år.
Et rent snit hvert år, på bekostning af at have op til to deluger, en i hver ende, ønskes ofte i regnskab mv. og for det YEAR() / WEEK()
tilgang er bedre.