Zeit und Datum sind häufig verwendete Gruppierungsbedingungen und werden häufig in der tatsächlichen Entwicklung verwendet, um Datenstatistiken zu erleichtern. In MySQL können wir die Datumsformatierungsfunktion verwenden, um das Datum in eine Zeichenfolge in einem bestimmten Format umzuwandeln und dann Gruppenstatistiken entsprechend der erforderlichen Zeitgranularität durchzuführen.
Bevor wir beginnen, müssen wir eine Testdatentabelle vorbereiten und einige Daten einfügen, um unsere nachfolgenden Experimente und Tests zu erleichtern.
CREATE TABLE `test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL, `created_at` datetime NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; INSERT INTO `test` (`name`, `created_at`) VALUES ('test1', '2022-01-01 00:00:00'), ('test2', '2022-01-02 00:00:00'), ('test3', '2022-01-02 12:00:00'), ('test4', '2022-01-03 00:00:00'), ('test5', '2022-01-07 00:00:00'), ('test6', '2022-01-08 00:00:00'), ('test7', '2022-01-09 00:00:00'), ('test8', '2022-01-10 00:00:00'), ('test9', '2022-01-14 00:00:00'), ('test10', '2022-01-15 00:00:00'), ('test11', '2022-01-16 00:00:00'), ('test12', '2022-01-17 00:00:00'), ('test13', '2022-02-01 00:00:00'), ('test14', '2022-02-02 00:00:00'), ('test15', '2022-02-03 00:00:00'), ('test16', '2022-03-01 00:00:00'), ('test17', '2022-03-02 00:00:00'), ('test18', '2022-03-03 00:00:00'), ('test19', '2022-04-01 00:00:00'), ('test20', '2022-04-02 00:00:00'), ('test21', '2022-04-03 00:00:00'), ('test22', '2022-05-01 00:00:00'), ('test23', '2022-05-02 00:00:00'), ('test24', '2022-05-03 00:00:00');
Hier erstellen wir ein Feld vom Typ Datum/Uhrzeit mit dem Namen test
的测试表,包含三个字段 id
、name
和 created_at
。其中 created_at
, das die Erstellungszeit des Datensatzes darstellt. Wir haben einige Testdaten eingefügt, darunter Daten von Januar bis Mai 2022.
Wenn wir Statistiken basierend auf Datumsangaben gruppieren müssen, bietet MySQL viele integrierte Datumsfunktionen wie YEAR(), MONTH() und WEEK (), DAY(), HOUR() usw. Diese Funktionen gruppieren Daten nach Datum und zählen die entsprechenden Mengen.
Für diese Anforderung möchten wir nach Datum gruppieren und die Daten für 7 Tage, 4 Wochen und 3 Monate berechnen. Daher müssen wir eine Kombination aus Datumsformatierung und Datumsfunktionen verwenden.
Zuerst müssen wir das Datum in das entsprechende Format formatieren. Sie können dies mit der Funktion DATE_FORMAT() tun, die zwei Parameter benötigt: Datum und Formatzeichenfolge. Das Datum kann wie unten gezeigt als „JJJJ-MM-TT“ formatiert werden, zum Beispiel:
SELECT DATE_FORMAT(date_column, '%Y-%m-%d') AS formatted_date FROM table_name;
Als nächstes müssen wir die Mengen nach dem Datum gruppieren und zählen. Dies kann mit der GROUP BY-Klausel und der entsprechenden Datumsfunktion erreicht werden. Beispielsweise können wir die täglichen Mengen nach Datum gruppiert wie folgt zählen:
SELECT DATE_FORMAT(date_column, '%Y-%m-%d') AS formatted_date, COUNT(*) AS count FROM table_name GROUP BY formatted_date;
SELECT DATE_FORMAT(date_column, '%x-%v') AS formatted_week, COUNT(*) AS count FROM table_name GROUP BY formatted_week;
oder
SELECT CONCAT(YEAR(date_column), '-', WEEK(date_column)) AS formatted_week, COUNT(*) AS count FROM table_name GROUP BY formatted_week;`
SELECT DATE_FORMAT(date_column, '%Y-%m-%d') AS formatted_month, COUNT(*) AS count FROM table_name GROUP BY formatted_month;
oder
SELECT CONCAT(YEAR(date_column), '-', MONTH(date_column)) AS formatted_month, COUNT(*) AS count FROM table_name GROUP BY formatted_month;
Das obige ist der detaillierte Inhalt vonMit welcher Methode werden Statistiken im MySQL-Datumsformat aggregiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!