sql >> Database >  >> RDS >> MariaDB

AM/PM toevoegen aan een tijd- of datum/tijd-waarde in MariaDB

MariaDB bevat veel functies waarmee u tijd- en datetime-waarden in verschillende indelingen kunt retourneren.

Met twee functies kunt u het tijdgedeelte opmaken met een 12-uursklok, met de AM/PM-aanduiding DATE_FORMAT() en TIME_FORMAT() .

Er zijn veel formaatspecificaties die met deze functies kunnen worden gebruikt, maar slechts een paar geven de AM/PM-aanduiding terug.

De %r Formaatspecificatie

De %r formaatspecificatie wordt gebruikt om de tijd op te maken in 12-uursnotatie, gevolgd door de AM/PM-aanduiding.

Voorbeeld:

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

Resultaat:

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

De resulterende tijd wordt weergegeven alsof deze is opgemaakt met de volgende notatiereeks:'%I:%i:%S %p' .

Of het nu AM retourneert, is duidelijk of PM hangt af van de werkelijke tijd. Tijden voor 12:00:00 return AM en tijden daarna terug PM .

Dit is wat er gebeurt als we de tijd voor 12:00:00 wijzigen :

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

Resultaat:

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

Beide DATE_FORMAT() en TIME_FORMAT() accepteer de %r formaatspecificatie, zodat we dezelfde formaatspecificatie kunnen gebruiken met de TIME_FORMAT() functie:

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

Resultaat:

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

TIME_FORMAT() accepteert zowel tijdwaarden als datetime-waarden, terwijl DATE_FORMAT() accepteert alleen datum- en datetime-waarden. Echter, TIME_FORMAT() accepteert alleen formaatspecificaties voor uren, minuten en seconden. Zien als %r geeft uren, minuten en seconden terug, dit wordt ook geaccepteerd.

De %p Formaatspecificatie

De %p formaatspecificatie is een meer specifieke formaatspecificatie die uitsluitend wordt gebruikt om de AM/PM-aanduiding weer te geven. Het wordt normaal gesproken gebruikt in combinatie met andere formaatspecificaties om de tijd in een aangepast formaat te retourneren.

Zoals gezegd, de %r formaatspecificatie formatteert de tijd alsof deze is opgemaakt met de volgende notatiereeks:'%I:%i:%S %p' .

Laten we die string expliciet gebruiken:

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

Resultaat:

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

We krijgen dus hetzelfde resultaat als bij het gebruik van de %r formaatspecificatie.

Een voordeel van het gebruik van deze methode is echter dat we de uitvoer op onze eigen aangepaste manier kunnen construeren.

Bijvoorbeeld:

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

Resultaat:

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

Hier gebruikten we %l om het uurgedeelte terug te geven zonder de voorloopnul. We hebben ook het secondengedeelte van de tijd weggelaten.

Zie MariaDB Format Strings voor een volledige lijst met formaatspecificaties die met deze functies kunnen worden gebruikt.


  1. Hulpprogramma voor clusterverificatie dat een groot aantal xml-bestanden genereert op het bestandssysteem "/u01".

  2. MySQL GRADEN() Functie – Converteren van radialen naar graden

  3. MySQL CAST – Hoe typ je Cast in MySQL

  4. Wat is database-sharding?