Heim > Datenbank > MySQL-Tutorial > Hauptteil

Einführung in die Methode der MySQL-Zeitstatistik (Codebeispiel)

不言
Freigeben: 2019-02-01 10:14:39
nach vorne
2387 Leute haben es durchsucht

Dieser Artikel bietet Ihnen eine Einführung in die Methode der MySQL-Statistikdaten (Codebeispiel). Ich hoffe, dass dies der Fall ist hilfreich sein.

Bei der Erstellung von Datenbankstatistiken ist es häufig erforderlich, Daten basierend auf Jahr, Monat und Tag zu zählen und dann echarts zu verwenden, um Visualisierungseffekte zu erzeugen.

Ideen

  • Die Voraussetzung für die Erstellung von Statistiken nach der Zeitdimension ist, dass die Datenbank über Informationen zur Aufbewahrungszeit verfügen muss. Es wird empfohlen, den mit MySQL gelieferten Typ zu verwenden, um die Zeit aufzuzeichnen. datetime

`timestamp` datetime DEFAULT NULL,
Nach dem Login kopieren
  • Die Hauptfunktion zur Verarbeitung von Uhrzeit und Datum in MySQL ist

    . Die verfügbaren Parameter sind wie folgt: DATE_FORMAT(date,format)

格式 描述
%a 缩写星期名
%b 缩写月名
%c 月,数值
%D 带有英文前缀的月中的天
%d 月的天,数值(00-31)
%e 月的天,数值(0-31)
%f 微秒
%H 小时 (00-23)
%h 小时 (01-12)
%I 小时 (01-12)
%i 分钟,数值(00-59)
%j 年的天 (001-366)
%k 小时 (0-23)
%l 小时 (1-12)
%M 月名
%m 月,数值(00-12)
%p AM 或 PM
%r 时间,12-小时(hh:mm:ss AM 或 PM)
%S 秒(00-59)
%s 秒(00-59)
%T 时间, 24-小时 (hh:mm:ss)
%U 周 (00-53) 星期日是一周的第一天
%u 周 (00-53) 星期一是一周的第一天
%V 周 (01-53) 星期日是一周的第一天,与 %X 使用
%v 周 (01-53) 星期一是一周的第一天,与 %x 使用
%W 星期名
%w 周的天 (0=星期日, 6=星期六)
%X 年,其中的星期日是周的第一天,4 位,与 %V 使用
%x 年,其中的星期一是周的第一天,4 位,与 %v 使用
%Y 年,4 位
%y 年,2 位

Hinweis : Wenn es um tägliche Statistiken geht, müssen Sie verwenden, und wenn Sie , dann werden identische Werte aus verschiedenen Monaten/Wochen zusammengezählt. %j%d, %e, %w

    beinhaltet das Abrufen der aktuellen Uhrzeit, die über
  • oder

    abgerufen werden kann. now()sysdate()

    SELECT SYSDATE() FROM DUAL;
    SELECT NOW() FROM DUAL;
    Nach dem Login kopieren
    Einfach mit
  • nach tatsächlichem Bedarf abfragen.

    group by

  • Fazit

Die zu zählende Tabellenstruktur ist wie folgt:

CREATE TABLE `apilog` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(64) DEFAULT NULL,
  `action` varchar(64) DEFAULT NULL,
  `params` text,
  `result` text,
  `timestamp` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
)
Nach dem Login kopieren

    Die Anzahl der verschiedenen Kategorien
  • innerhalb des statistischen Zeitbereichs

    # 当日
    SELECT action, COUNT(id) count FROM apilog WHERE DATE_FORMAT(`timestamp`,'%j') = DATE_FORMAT(now(),'%j') ORDER BY count desc;
    # 当周
    SELECT action, COUNT(id) count FROM apilog WHERE DATE_FORMAT(`timestamp`,'%u') = DATE_FORMAT(now(),'%u') ORDER BY count desc;
    # 当月
    SELECT action, COUNT(id) count FROM apilog WHERE DATE_FORMAT(`timestamp`,'%m') = DATE_FORMAT(now(),'%m') ORDER BY count desc;
    # 当年
    SELECT action, COUNT(id) count FROM apilog WHERE DATE_FORMAT(`timestamp`,'%Y') = DATE_FORMAT(now(),'%Y') ORDER BY count desc;
    Nach dem Login kopieren
    action
  • Zählt die Anzahl der Zeitdimensionen einer bestimmten Kategorie
  • # 按日
    SELECT action, DATE_FORMAT(`timestamp`,'%j'), COUNT(id) count FROM apilog WHERE action = 'xxx' GROUP BY DATE_FORMAT(`timestamp`,'%j')
    # 按周
    SELECT action, DATE_FORMAT(`timestamp`,'%u'), COUNT(id) count FROM apilog WHERE action = 'xxx' GROUP BY DATE_FORMAT(`timestamp`,'%u')
    # 按月
    SELECT action, DATE_FORMAT(`timestamp`,'%m'), COUNT(id) count FROM apilog WHERE action = 'xxx' GROUP BY DATE_FORMAT(`timestamp`,'%m')
    # 按年
    SELECT action, DATE_FORMAT(`timestamp`,'%Y'), COUNT(id) count FROM apilog WHERE action = 'xxx' GROUP BY DATE_FORMAT(`timestamp`,'%Y')
    Nach dem Login kopieren
    actionStatistik nach und Zeitdimensionen gleichzeitig

    # 按日
    SELECT action, DATE_FORMAT(`timestamp`,'%j'), COUNT(id) count FROM apilog GROUP BY action, DATE_FORMAT(`timestamp`,'%j')
    # 按周
    SELECT action, DATE_FORMAT(`timestamp`,'%u'), COUNT(id) count FROM apilog GROUP BY action, DATE_FORMAT(`timestamp`,'%u')
    # 按月
    SELECT action, DATE_FORMAT(`timestamp`,'%m'), COUNT(id) count FROM apilog GROUP BY action, DATE_FORMAT(`timestamp`,'%m')
    # 按年
    SELECT action, DATE_FORMAT(`timestamp`,'%Y'), COUNT(id) count FROM apilog GROUP BY action, DATE_FORMAT(`timestamp`,'%Y')
    Nach dem Login kopieren
    action
  • Die oben genannten sind die am häufigsten verwendeten Zeitstatistiken. Weitere Zeitdimensionen finden Sie in der Parametertabelle oben für eine ähnliche Verarbeitung.


Das obige ist der detaillierte Inhalt vonEinführung in die Methode der MySQL-Zeitstatistik (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.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