Heim > Datenbank > MySQL-Tutorial > Hauptteil

Mit welcher Methode werden Statistiken im MySQL-Datumsformat aggregiert?

WBOY
Freigeben: 2023-05-31 23:04:48
nach vorne
1144 Leute haben es durchsucht

    Einführung

    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.

    Vorbereitung

    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');
    Nach dem Login kopieren

    Hier erstellen wir ein Feld vom Typ Datum/Uhrzeit mit dem Namen test 的测试表,包含三个字段 idnamecreated_at。其中 created_at, das die Erstellungszeit des Datensatzes darstellt. Wir haben einige Testdaten eingefügt, darunter Daten von Januar bis Mai 2022.

    Implementierungsprinzip

    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;
    Nach dem Login kopieren

    Praktischer Betrieb

    Zählung nach Tag

    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;
    Nach dem Login kopieren

    nach Woche

    SELECT DATE_FORMAT(date_column, '%x-%v') AS formatted_week, COUNT(*) AS count FROM table_name GROUP BY formatted_week;
    Nach dem Login kopieren

    oder

    SELECT CONCAT(YEAR(date_column), '-', WEEK(date_column)) AS formatted_week, COUNT(*) AS count FROM table_name GROUP BY formatted_week;`
    Nach dem Login kopieren

    nach Monat

    SELECT DATE_FORMAT(date_column, '%Y-%m-%d') AS formatted_month, COUNT(*) AS count FROM table_name GROUP BY formatted_month;
    Nach dem Login kopieren

    oder

    SELECT CONCAT(YEAR(date_column), '-', MONTH(date_column)) AS formatted_month, COUNT(*) AS count FROM table_name GROUP BY formatted_month;
    Nach dem Login kopieren

    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!

    Verwandte Etiketten:
    Quelle:yisu.com
    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage