Zusammenfassung der MySQL-Zeitstatistikmethoden

Zusammenfassung der MySQL-Zeitstatistikmethoden

Beim Erstellen von Datenbankstatistiken müssen Sie häufig Daten basierend auf Jahr, Monat und Tag erfassen und anschließend E-Charts zum Erstellen von Visualisierungen verwenden.

Datenbank: MySQL

Ideen

Die Voraussetzung für Statistiken, die auf der Zeitdimension basieren, ist, dass die Datenbank Zeitinformationen gespeichert haben muss. Es wird empfohlen, den mit MySQL gelieferten Datums-/Uhrzeittyp zum Aufzeichnen der Zeit zu verwenden.

`Zeitstempel` Datum/Uhrzeit DEFAULT NULL,

Die Hauptfunktion zur Verarbeitung von Uhrzeit und Datum in MySQL ist DATE_FORMAT(Datum,Format). Die verfügbaren Parameter sind wie folgt

Format beschreiben
%A Abgekürzter Wochentag
%B Abgekürzter Monatsname
%C Monat, Wert
%D Tage des Monats mit englischen Präfixen
%D Tag des Monats, numerischer Wert (00-31)
%e Tag des Monats, numerisch (0-31)
%F Mikrosekunden
%H Stunden (00-23)
%H Stunden (01-12)
%ICH Stunden (01-12)
%ich Minute, numerischer Wert (00-59)
%J Tag des Jahres (001-366)
%k Stunden (0-23)
%l Stunden (1-12)
%M Monatsname
%M Monat, numerischer Wert (00-12)
%P AM oder PM
%R Uhrzeit, 12 Stunden (hh:mm:ss AM oder PM)
%S Sekunden (00-59)
%S Sekunden (00-59)
%T Uhrzeit, 24 Stunden (hh:mm:ss)
%U Woche (00-53) Sonntag ist der erste Tag der Woche
%u Woche (00-53) Montag ist der erste Tag der Woche
%V Woche (01-53) Sonntag ist der erste Tag der Woche, verwendet mit %X
%v Woche (01-53) Montag ist der erste Tag der Woche, verwendet mit %x
%W Wochentag
%w Wochentag (0=Sonntag, 6=Samstag)
%X Jahr, wobei Sonntag der erste Tag der Woche ist, 4 Ziffern, verwendet mit %V
%X Jahr, wobei Montag der erste Tag der Woche ist, 4 Ziffern, verwendet mit %v
%Y Jahr, 4-stellig
%y Jahr, 2 Ziffern

Hinweis: Bei Tagesstatistiken ist %j erforderlich. Bei Verwendung von %d, %e, %w werden gleiche Werte in unterschiedlichen Monaten/Wochen zusammengezählt.

Um die aktuelle Uhrzeit abzurufen, können Sie now() oder sysdate() verwenden.

WÄHLEN SIE SYSDATE() AUS DUAL;

WÄHLEN SIE JETZT() VON DUAL;

Sie können die Gruppierung nach Abfrage entsprechend dem tatsächlichen Bedarf verwenden.

Fazit <br /> Die zu zählende Tabellenstruktur ist wie folgt:

CREATE TABLE `apilog` (

 `id` int(11) NICHT NULL AUTO_INCREMENT,

 `Benutzername` varchar(64) DEFAULT NULL,

 `Aktion` varchar(64) DEFAULT NULL,

 `params`-Text,

 `Ergebnis`-Text,

 `Zeitstempel` Datum/Uhrzeit DEFAULT NULL,

 PRIMÄRSCHLÜSSEL (`id`)

)

Zählen Sie die Anzahl der Aktionen verschiedener Kategorien innerhalb des Zeitbereichs

# SELECT-Aktion für den Tag, COUNT(id) count FROM apilog WHERE DATE_FORMAT(`timestamp`,'%j') = DATE_FORMAT(now(),'%j') ORDER BY count desc;

# Diese Woche SELECT-Aktion, COUNT(id) count FROM apilog WHERE DATE_FORMAT(`timestamp`,'%u') = DATE_FORMAT(now(),'%u') ORDER BY count desc;

# Aktueller Monat SELECT-Aktion, COUNT(id) count FROM apilog WHERE DATE_FORMAT(`timestamp`,'%m') = DATE_FORMAT(now(),'%m') ORDER BY count desc;

# SELECT-Aktion, COUNT(id) Anzahl FROM apilog WHERE DATE_FORMAT(`timestamp`,'%Y') = DATE_FORMAT(now(),'%Y') ORDER BY Anzahl desc;

Zählen Sie die Anzahl der Zeitdimensionen einer bestimmten Klassifizierungsaktion

# Nach Tag SELECT Aktion, DATE_FORMAT(`timestamp`,'%j'), COUNT(id) Anzahl FROM apilog WHERE Aktion = 'xxx' GROUP BY DATE_FORMAT(`timestamp`,'%j')

# Nach Woche SELECT Aktion, DATE_FORMAT(`timestamp`,'%u'), COUNT(id) Anzahl FROM apilog WHERE Aktion = 'xxx' GROUP BY DATE_FORMAT(`timestamp`,'%u')

# Nach Monat SELECT Aktion, DATE_FORMAT(`timestamp`,'%m'), COUNT(id) Anzahl FROM apilog WHERE Aktion = 'xxx' GROUP BY DATE_FORMAT(`timestamp`,'%m')

# Nach Jahr SELECT Aktion, DATE_FORMAT(`timestamp`,'%Y'), COUNT(id) Anzahl FROM apilog WHERE Aktion = 'xxx' GROUP BY DATE_FORMAT(`timestamp`,'%Y')

Statistiken nach Aktions- und Zeitdimensionen gleichzeitig

# Nach Tag SELECT-Aktion, DATE_FORMAT(`timestamp`,'%j'), COUNT(id) Anzahl FROM apilog GROUP BY-Aktion, DATE_FORMAT(`timestamp`,'%j')

# Nach Woche SELECT-Aktion, DATE_FORMAT(`timestamp`,'%u'), COUNT(id) Anzahl FROM apilog GROUP BY-Aktion, DATE_FORMAT(`timestamp`,'%u')

# Nach Monat SELECT-Aktion, DATE_FORMAT(`timestamp`,'%m'), COUNT(id) Anzahl FROM apilog GROUP BY-Aktion, DATE_FORMAT(`timestamp`,'%m')

# Nach Jahr SELECT-Aktion, DATE_FORMAT(`timestamp`,'%Y'), COUNT(id) Anzahl FROM apilog GROUP BY-Aktion, DATE_FORMAT(`timestamp`,'%Y')

Oben sind die am häufigsten verwendeten Zeitstatistiken aufgeführt. Weitere Zeitdimensionen finden Sie in der Parametertabelle oben für ähnliche Verarbeitungen.

Das könnte Sie auch interessieren:
  • MySQL-Beispiel zum Umwandeln des Geburtsdatums in das Alter und zum Gruppieren und Zählen der Personenanzahl
  • Gründe, warum MySQL 8.0-Statistiken ungenau sind
  • Eine kurze Diskussion über die MySQL-Zeilenanzahl
  • Ein kleines Shell-Skript zum genauen Zählen der Zeilenanzahl in jeder MySQL-Tabelle
  • MySQL implementiert Multi-Table-Assoziationsstatistiken (Unterabfragestatistiken) Beispiel
  • Laravel implementiert die Methode zum Zählen von MySQL-Daten nach Monat, Tag oder Stunde
  • SQLServer/MySQL-Statistiken kontinuierlicher Zeitdaten nach Tag, Stunde, Minute [empfohlen]
  • Detaillierte Erläuterung von MySQL zum Abrufen statistischer Daten für jeden Tag und jede Stunde eines bestimmten Zeitraums
  • PHP+MySQL, um innerhalb eines bestimmten Zeitraums ein Beispiel für eine tägliche Datenstatistikoptimierung zu erreichen
  • PHP-Code für Werbeklickstatistiken (php+mysql)
  • Übersicht über MySQL-Statistiken
  • Eine kurze Analyse der MySQL-Kardinalitätsstatistiken

<<:  Detaillierte Analyse des Event-Bubbling-Mechanismus in JavaScript

>>:  Detaillierte Schritte zum Installieren und Debuggen einer MySQL-Datenbank unter CentOS7 [Beispiel]

Artikel empfehlen

Allgemeine Tags in XHTML

Was sind XHTML-Tags? XHTML-Tag-Elemente sind die ...

Detaillierte Erklärung zum Kopieren und Sichern von Docker-Containerdaten

Hier nehmen wir den Jenkins-Container als Beispie...

So verwenden Sie „not in“ zur Optimierung von MySql

Als ich kürzlich in einem Projekt eine Auswahlabf...

DHTML-Objekte (gemeinsame Eigenschaften verschiedener HTML-Objekte)

!DOCTYPE Gibt die Document Type Definition (DTD) ...

Sicherheitskonfigurationsstrategie für CentOS-Server

In letzter Zeit wurde der Server häufig mit Brute...

JS realisiert Bild Digitaluhr

In diesem Artikelbeispiel wird der spezifische JS...

So erben Sie die CSS-Zeilenhöhe

Wie wird die Zeilenhöhe vererbt?Schreiben Sie ein...

So erhalten Sie die dynamische Anzahl der verbleibenden Wörter im Textbereich

Ich bin bei der Arbeit auf einen Fall gestoßen, ü...

Führen Sie die Schritte zur Verwendung von mock.js im Vue-Projekt aus

Verwenden von mock.js im Vue-Projekt Auswahl des ...

Alibaba Cloud ESC Server Docker-Bereitstellung von Single Node Mysql

1. Laden Sie die beschleunigte Version von msyql ...