Heim  >  Artikel  >  Datenbank  >  Einführung in die Methode der MySQL-Zeitstatistik (Codebeispiel)

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

不言
不言nach vorne
2019-02-01 09:47:252385Durchsuche

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,
  • 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;
    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`)
)

    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;
    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')
    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')
    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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen