Med följande fråga kan kan räkna antal bokningar på vissa timmar:
SELECT DATE_FORMAT( `not_confirmed`, '%H:00' ) AS `Timma`, COUNT(`not_id`) AS Antal
FROM `school_notifies`
WHERE DATE_FORMAT(`not_confirmed`, '%Y-%m-%d') = '2015-02-16'
GROUP BY DATE_FORMAT( `not_confirmed`, '%Y-%m-%d %H' )
ORDER BY DATE_FORMAT( `not_confirmed`, '%Y-%m-%d %H' ) ASC
not_confirmed är av typen DATETIME. Nu vill jag istället gruppera på både timma och minut, men får det inte alls att stämma. Har testat %H%m i min GROUP BY, har testat med HOUR(`not_confirmed`), MINUTE(`not_confirmed`) men det blir ändå t.ex. 08:02 flera gånger i resultatet.
SELECT hour( `not_confirmed` ) AS `Timma`, minute( `not_confirmed` ) AS `Minut`, COUNT(*) AS Antal
FROM `school_notifies`
WHERE DATE_FORMAT(`not_confirmed`, '%Y-%m-%d') = '2015-02-16'
GROUP BY hour( `not_confirmed` ), minute( `not_confirmed` )
Yes, det där fungerar. Men varför funkar inte det här?
SELECT DATE_FORMAT(`not_confirmed`, '%H:%m') AS `Minut`, COUNT(*) AS Antal
FROM `school_notifies`
WHERE DATE_FORMAT(`not_confirmed`, '%Y-%m-%d') = '2015-02-16'
GROUP BY DATE_FORMAT(`not_confirmed`, '%H:%m')
Det borde ju vara samma sak!? Problemet med frågan ovan är att jag ändå måste blanda in PHP för att få till formatera tidsstämpeln. Kan inte MySQL gruppera efter tid? Även om jag lägger till DATE_FORMAT(`not_confirmed`, '%H:%m') AS `Tid` i min SELECT, så blir alla poster 07:02, 08:02 etc... inte den rätta tiden, vilket är helt sjukt... Det går ju utmärkt att gruppera efter timma om jag använder DATE_FORMAT, så att det inte ska gå med TIMMA:MINUT låter ju underligt?