Verwendung der MySQL DATE_FORMAT-Funktion

Verwendung der MySQL DATE_FORMAT-Funktion

Angenommen, Taobao animiert die Leute zum Einkaufen während des Double 12, indem es die beiden Benutzer belohnt, die am Double 11 die meisten Bestellungen aufgegeben haben: Benutzer 1: „Chen Haha, der Shopping-Kaiser“ und Benutzer 2: „Liu Dali, das Tentakelmonster“ mit jeweils 10.000 RMB;

Anforderung 1: Sie werden gebeten, mithilfe der MySQL-Bestelltabelle die Anzahl der von diesen beiden Personen stündlich bei Double 11 aufgegebenen Bestellungen zu zählen. Wie würden Sie dieses SQL schreiben?

Ich erinnere mich, als ich vor ein paar Jahren zum ersten Mal mit MySQl in Berührung kam, war ich jung und leichtsinnig. Als ich merkte, dass man nicht auf Effizienz achten muss, schrieb ich eine Schnittstelle, die 24 Schleifen durchlief und 24 SQL-Anweisungen zur Überprüfung schickte (und dabei mein Gesicht verdeckte). Wegen dieser Schnittstelle machte mich der technische Manager lächerlich~~ Er sagte, er hätte mehr SQL-Anweisungen geschrieben, als ich Reis gegessen hätte. Obwohl wir in Shandong grundsätzlich keinen Reis essen, schäme ich mich trotzdem. .

Dann ruft der Manager eine DATE_FORMAT-Funktion auf, um die Gruppenabfrage zu verarbeiten, und alles ist in Ordnung. Die Effizienz ist Dutzende Male höher als bei mir. Von da an hatte ich insgeheim vor, mich eingehend mit SQL-Kenntnissen zu befassen.

Am nächsten Tag spielte ich mit meinen Freunden zwei Runden King of Glory, sodass der Plan um einige Jahre verschoben wurde.

In MySQL gibt es eine speziell gekapselte DATE_FORMAT-Funktion zur Verarbeitung von Zeitfeldern. Man kann sagen, dass die DATE_FORMAT-Funktion grundsätzlich die Verarbeitungsanforderungen jedes Zeitfelds erfüllen kann.

Funktion DATE_FORMAT(Datum,Format)

Parameteranalyse:

1. Datum: stellt ein bestimmtes Zeitfeld dar oder kann mit now() die aktuelle Uhrzeit abgefragt werden;
2. Format: DATE_FORMAT konvertiert die eingehenden Datumsdaten in das gewünschte Format, z. B. %Y-%m-%d. %H:%i:%s konvertiert die eingehenden Zeitdaten in das Format „yyyy-MM-dd HH:mm:ss“.
%Y-%m-%d %H:%i:%s entspricht yyyy-MM-dd HH:mm:ss und ist auch das am häufigsten verwendete Format. Hier ein paar einfache Beispiele:

SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s'); -- Ergebnis: 2020-12-07 22:18:58
SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i'); -- Ergebnis: 2020-12-07 22:18
SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %H'); -- Ergebnis: 2020-12-07 22
SELECT DATE_FORMAT(NOW(),'%Y-%m-%d'); -- Ergebnis: 2020-12-07
SELECT DATE_FORMAT(NOW(),'%H:%i:%s'); -- Ergebnis: 22:18:58
SELECT DATE_FORMAT(NOW(),'%H'); -- Ergebnis: 22

Für Anforderung 1 oben lautet die Abfragemethode mit der Funktion DATE_FORMAT wie folgt:

SELECT name als 'Benutzername', DATE_FORMAT(createTime,'%Y-%m-%d %H') als 'Zeit/Stunde', count(*) als 'Bestellvolumen' aus t_order 
 wobei DATE_FORMAT(Erstellungszeit,'%Y-%m-%d') = '2020-11-11' 
  GROUP BY DATE_FORMAT(Erstellungszeit,'%Y-%m-%d %H');

Abfrageergebnisse:

mysql> SELECT name als „Benutzername“, DATE_FORMAT(createTime,‘%Y-%m-%d %H‘) als „Zeit/Stunde“, count(*) als „Bestellvolumen“ aus t_order, wobei DATE_FORMAT(createTime,‘%Y-%m-%d‘) = „2020-11-11‘ GROUP BY DATE_FORMAT(createTime,‘%Y-%m-%d %H‘);
+------------------+---------------+--------------+
| Benutzername| Uhrzeit/Stunde| Bestellvolumen|
+------------------+---------------+--------------+
| Einkaufskaiser Chen Haha | 11.11.2020 00 | 0 |
| Shopping-Kaiser Chen Haha | 11.11.2020 01 | 10 |
| Shopping-Kaiser Chen Haha | 11.11.2020 02 | 6 |
| Shopping-Kaiser Chen Haha | 11.11.2020 03 | 3 |
| Shopping-Kaiser Chen Haha | 11.11.2020 04 | 0 |
| Shopping-Kaiser Chen Haha | 11.11.2020 05 | 0 |
| Einkaufskaiser Chen Haha | 11.11.2020 06 | 0 |
| Shopping-Kaiser Chen Haha | 11.11.2020 07 | 0 |
| Einkaufskaiser Chen Haha | 11.11.2020 08 | 0 |
| Einkaufskaiser Chen Haha | 11.11.2020 09 | 0 |
| Einkaufskaiser Chen Haha | 11.11.2020 10 | 0 |
| Einkaufskaiser Chen Haha | 11.11.2020 11 | 0 |
| Einkaufskaiser Chen Haha | 11.11.2020 12 | 12 |
| Einkaufskaiser Chen Haha | 11.11.2020 13 | 6 |
| Shopping-Kaiser Chen Haha | 11.11.2020 14 | 3 |
| Einkaufskaiser Chen Haha | 11.11.2020 15 | 7 |
| Shopping-Kaiser Chen Haha | 11.11.2020 16 | 2 |
| Shopping-Kaiser Chen Haha | 11.11.2020 17 | 3 |
| Einkaufskaiser Chen Haha | 11.11.2020 18 | 11 |
| Shopping-Kaiser Chen Haha | 11.11.2020 19 | 2 |
| Einkaufskaiser Chen Haha | 11.11.2020 20 | 1 |
| Shopping-Kaiser Chen Haha | 11.11.2020 21 | 3 |
| Shopping-Kaiser Chen Haha | 11.11.2020 22 | 2 |
| Einkaufskaiser Chen Haha | 11.11.2020 23 | 0 |
+------------------+---------------+--------------+
24 Zeilen im Satz (0,00 Sek.)

Dabei stellt GROUP BY DATE_FORMAT(createTime,'%Y-%m-%d %H') die Kombination aus „Jahr, Monat, Tag + Stunde“ dar, insbesondere die Stunde eines bestimmten Tages;

Natürlich kann es auch in den folgenden zwei Formen geschrieben werden, beide durch Stunden geteilt, aber...:

1. GRUPPE NACH DATE_FORMAT(Erstellungszeit,'%H')
2. GRUPPE NACH STUNDE(Erstellungszeit)
Es ist zu beachten, dass diese drei Funktionen gleich sind, wenn die Where-Bedingung einen bestimmten Tag angibt. Wenn die Where-Bedingung jedoch keinen bestimmten Tag angibt, ist dies sehr unterschiedlich. Schauen wir uns die Abfrageergebnisse an.

SELECT name als 'Benutzername', DATE_FORMAT(createTime,'%H') als 'Zeit/Stunde', count(*) als 'Bestellvolumen' aus t_order
 GROUP BY DATE_FORMAT(Erstellungszeit,'%H');

Abfrageergebnisse

mysql> SELECT name als „Benutzername“, DATE_FORMAT(createTime,„%H“) als „Zeit/Stunde“, count(*) als „Bestellvolumen“ aus t_order GROUP BY DATE_FORMAT(createTime,„%H“);
+-----------------+---------------+-------------+
| Benutzername| Uhrzeit/Stunde| Bestellvolumen|
+-----------------+---------------+-------------+
| Tentakelmonster Liu Dali | 00 | 11 |
| Tentakelmonster Liu Dali | 01 | 302 |
| Tentakelmonster Liu Dali | 02 | 277 |
| Tentakelmonster Liu Dali | 03 | 122 |
| Tentakelmonster Liu Dali | 04 | 6 |
| Tentakelmonster Liu Dali | 05 | 11 |
| Tentakelmonster Liu Dali | 06 | 0 |
| Tentakelmonster Liu Dali | 07 | 0 |
| Tentakelmonster Liu Dali | 08 | 1 |
| Tentakelmonster Liu Dali | 09 | 4 |
| Tentakelmonster Liu Dali | 10 | 5 |
| Tentakelmonster Liu Dali | 11 | 92 |
| Tentakelmonster Liu Dali | 12 | 1937 |
| Tentakelmonster Liu Dali | 13 | 1602 |
| Tentakelmonster Liu Dali | 14 | 108 |
| Tentakelmonster Liu Dali | 15 | 78 |
| Tentakelmonster Liu Dali | 16 | 110 |
| Tentakelmonster Liu Dali | 17 | 108 |
| Tentakelmonster Liu Dali | 18 | 138 |
| Tentakelmonster Liu Dali | 19 | 66 |
| Tentakelmonster Liu Dali | 20 | 44 |
| Tentakelmonster Liu Dali | 21 | 59 |
| Tentakelmonster Liu Dali | 22 | 21 |
| Tentakelmonster Liu Dali | 23 | 8 |
+-----------------+---------------+-------------+
24 Zeilen im Satz (0,01 Sek.)

Aus den Abfrageergebnissen können wir ersehen, dass die gefundenen Daten die Verteilung aller historischen Bestellungen des Benutzers pro Stunde darstellen. DATE_FORMAT(createTime,'%H') stellt die Stunde eines beliebigen Tages dar, was GROUP BY HOUR(createTime) entspricht.

Ich bin davon überzeugt, dass Studierende, die Empfehlungsalgorithmen schreiben, anhand dieser Daten wissen, welcher Zeitraum sich bei der Werbung für „Tentakelmonster Liu Dali“ am effektivsten eignet.

Dies ist das Ende dieses Artikels über die Verwendung der MySQL DATE_FORMAT-Funktion. Weitere relevante MySQL DATE_FORMAT-Inhalte finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • So verwenden Sie allgemeine MySQL-Funktionen zur Verarbeitung von JSON
  • Analyse gängiger Anwendungsbeispiele von MySQL-Prozessfunktionen
  • Allgemeines Tutorial zur Verwendung der mysql_fetch_*-Funktion im PHP-Betrieb von MySQL
  • Detaillierte Erläuterung der Mysql-Funktionsaufrufoptimierung
  • Beispiel-Tutorial zur Verwendung der Summenfunktion in MySQL
  • Spezifische Verwendung der MySQL-Segmentierungsfunktion substring()
  • Allgemeine Funktionen der MySQL-Grundlagen

<<:  Eine kurze Diskussion über einige Vorteile von Vue3

>>:  Deutsch: Ein Link-Tag vervollständigt href im IE automatisch

Artikel empfehlen

MySQL 8.0.13 Installations- und Konfigurations-Tutorial unter CentOS7.3

1. Grundlegende Umgebung 1. Betriebssystem: CentO...

Designperspektive Technologie ist ein wichtiges Kapital der Designfähigkeit

Ein Designsoldat fragte: „Kann ich nur reines Des...

Eine kurze Erläuterung der Schriftarteinstellungen in Webseiten

Das Festlegen der Schriftart für die gesamte Site...

CSS3-Textanimationseffekte

Wirkung html <div Klasse="sp-container&qu...

Installations- und Konfigurationstutorial von MySQL 8.0.16 unter Win10

1. Entpacken Sie MySQL 8.0.16 Der Ordner dada und...

So erstellen Sie ein php-nginx-alpine-Image von Grund auf in Docker

Obwohl ich bereits einige Projekte in einer Docke...

Einführung in die Verschlüsselung des Grub-Boot-Programms in Linux

Inhaltsverzeichnis 1. Was ist Grub-Verschlüsselun...

Die Verwendung des V-Modells in Vue3-Komponenten und ausführliche Erklärung

Inhaltsverzeichnis Verwenden Sie bidirektionale B...

MySQL implementiert eine Beispielmethode zum Anmelden ohne Kennwort

Spezifische Methode: Schritt 1: Stoppen Sie den M...