@codenerd på twitter Mit seneste tweet:

yearmonth i mysql – Hent år og måned fra en dato i mysql

Hvis du i mysql skal udtrække uge og år kan du bruge yearweek(§dato§), yearweek(now()) giver fx 200951 i skrivende stund. Hvis du i stedet ønsker år og måned altså 200912, er der ikke nogen genvej til dette, man skulle tro yearmonth() ville give resultatet, men denne genvej er endnu ikke indbygget i mysql, i stedet skal du ha fat i extract:

PHP
1
EXTRACT(YEAR_MONTH FROM datofelt)

Dette er ikke lige så nemt at huske i forhold til yearweek() funktionen, så hvis du har adgang til at oprette stored routines, kan du i stedet selv lave en yearmonth() funktion, med følgende sql:

PHP
1
2
3
4
5
6
7
DELIMITER $$
CREATE FUNCTION <code>yearmonth</code>(dato DATETIME) RETURNS INT(6)
DETERMINISTIC
BEGIN
    RETURN EXTRACT(YEAR_MONTH FROM dato);
END$$
DELIMITER ;

Kør sqlen fra din favorit editor, hvad enten det er PHPMyAdmin eller SQLYog eller noget helt 3. burde det virke uden problemer

Når du har kørt ovenstående, har du nu adgang til at bruge yearmonth() udfra samme syntax som yearweek(), fx:

PHP
1
2
SELECT COUNT(*), yearmonth(datofelt) FROM din_tabel
GROUP BY yearmonth(datofelt);

Håber det kan bruges

Skriv en kommentar

Krævede felter er markeret med *.

*