MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Wie man AM/PM zu einem Zeit- oder Datetime-Wert in MariaDB hinzufügt

MariaDB enthält viele Funktionen, mit denen Sie Zeit- und Datumszeitwerte in einer Vielzahl von Formaten zurückgeben können.

Zwei Funktionen ermöglichen es Ihnen, den Zeitabschnitt mit einer 12-Stunden-Uhr zu formatieren, wobei die AM/PM-Bezeichnung DATE_FORMAT() ist und TIME_FORMAT() .

Es gibt viele Formatbezeichner, die mit diesen Funktionen verwendet werden können, aber nur wenige, die den AM/PM-Bezeichner zurückgeben.

Der %r Formatbezeichner

Der %r Der Formatbezeichner wird verwendet, um die Zeit im 12-Stunden-Format zu formatieren, gefolgt von der AM/PM-Bezeichnung.

Beispiel:

SELECT DATE_FORMAT('2030-03-10 18:10:37', '%r');

Ergebnis:

+------------------------------------------+
| DATE_FORMAT('2030-03-10 18:10:37', '%r') |
+------------------------------------------+
| 06:10:37 PM                              |
+------------------------------------------+

Die resultierende Zeit wird so angezeigt, als wäre sie mit der folgenden Formatzeichenfolge formatiert worden:'%I:%i:%S %p' .

Offensichtlich, ob es AM zurückgibt oder PM hängt von der tatsächlichen Uhrzeit ab. Zeiten vor 12:00:00 gibt AM zurück und Zeiten danach geben PM zurück .

Folgendes passiert, wenn wir die Uhrzeit auf 12:00:00 ändern :

SELECT DATE_FORMAT('2030-03-10 06:10:37', '%r');

Ergebnis:

+------------------------------------------+
| DATE_FORMAT('2030-03-10 06:10:37', '%r') |
+------------------------------------------+
| 06:10:37 AM                              |
+------------------------------------------+

Sowohl DATE_FORMAT() und TIME_FORMAT() akzeptiere den %r Formatbezeichner, sodass wir denselben Formatbezeichner mit TIME_FORMAT() verwenden können Funktion:

SELECT TIME_FORMAT('06:10:37', '%r');

Ergebnis:

+-------------------------------+
| TIME_FORMAT('06:10:37', '%r') |
+-------------------------------+
| 06:10:37 AM                   |
+-------------------------------+

TIME_FORMAT() akzeptiert sowohl Zeitwerte als auch Datumszeitwerte, wohingegen DATE_FORMAT() akzeptiert nur date- und datetime-Werte. Jedoch TIME_FORMAT() akzeptiert nur Formatbezeichner für Stunden, Minuten und Sekunden. Sehen als %r gibt Stunden, Minuten und Sekunden zurück, dies wird auch akzeptiert.

Der %p Formatbezeichner

Der %p Der Formatbezeichner ist ein spezifischerer Formatbezeichner, der ausschließlich zur Darstellung des AM/PM-Bezeichners verwendet wird. Es wird normalerweise in Verbindung mit anderen Formatbezeichnern verwendet, um die Zeit in einem benutzerdefinierten Format zurückzugeben.

Wie bereits erwähnt, der %r Der Formatbezeichner formatiert die Uhrzeit so, als wäre sie mit der folgenden Formatzeichenfolge formatiert worden:'%I:%i:%S %p' .

Lassen Sie uns diesen String explizit verwenden:

SELECT TIME_FORMAT('18:10:37', '%I:%i:%S %p');

Ergebnis:

+----------------------------------------+
| TIME_FORMAT('18:10:37', '%I:%i:%S %p') |
+----------------------------------------+
| 06:10:37 PM                            |
+----------------------------------------+

Wir erhalten also dasselbe Ergebnis wie bei Verwendung von %r Formatbezeichner.

Ein Vorteil bei der Verwendung dieser Methode besteht jedoch darin, dass wir die Ausgabe auf unsere eigene benutzerdefinierte Weise erstellen können.

Zum Beispiel:

SELECT TIME_FORMAT('18:10:37', '%l:%i %p');

Ergebnis:

+-------------------------------------+
| TIME_FORMAT('18:10:37', '%l:%i %p') |
+-------------------------------------+
| 6:10 PM                             |
+-------------------------------------+

Hier haben wir %l verwendet um den Stundenteil ohne die führende Null zurückzugeben. Wir haben auch den Sekundenanteil der Zeit weggelassen.

Eine vollständige Liste der Formatbezeichner, die mit diesen Funktionen verwendet werden können, finden Sie unter MariaDB-Formatzeichenfolgen.