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; 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') 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:
|
<<: Eine kurze Diskussion über einige Vorteile von Vue3
>>: Deutsch: Ein Link-Tag vervollständigt href im IE automatisch
1. Grundlegende Umgebung 1. Betriebssystem: CentO...
Ein Designsoldat fragte: „Kann ich nur reines Des...
Vorwort Erfahren Sie, wie Sie auf Ihrem System ei...
Das Festlegen der Schriftart für die gesamte Site...
Wirkung html <div Klasse="sp-container&qu...
1. Entpacken Sie MySQL 8.0.16 Der Ordner dada und...
Obwohl ich bereits einige Projekte in einer Docke...
1. Wenn MySQL nicht erfolgreich gestartet wird, ü...
Verwenden Sie den Linux-Befehl chmod , um zu steu...
Inhaltsverzeichnis 1. Was ist Grub-Verschlüsselun...
Inhaltsverzeichnis 1. Digitaler Betrieb (1) Gener...
Heute werde ich aufzeichnen, wie man MySQL 8.0.18...
Inhaltsverzeichnis Verwenden Sie bidirektionale B...
Beim Erstellen einer Website habe ich festgestellt...
Spezifische Methode: Schritt 1: Stoppen Sie den M...