sql >> Database >  >> RDS >> MariaDB

Hoe de korte dagnaam van een datum in MariaDB te krijgen?

In MariaDB kunt u de DATE_FORMAT() . gebruiken functie om verschillende datumdelen van een datum te retourneren. Een van de dingen die u kunt retourneren, is de korte dagnaam. Bijvoorbeeld Tue of Wed (in plaats van Tuesday of Wednesday ).

De "Short Day Name"-formaatspecificatie (%a )

De sleutel tot het retourneren van de korte dagnaam bij gebruik van de DATE_FORMAT() functie is om de toepasselijke formaatspecificatie te gebruiken.

In MariaDB is de formaatspecificatie voor de korte dagnaam:%a

Voorbeeld

Hier is een voorbeeld om te demonstreren:

SELECT DATE_FORMAT('2023-07-25', '%a');

Resultaat:

+---------------------------------+
| DATE_FORMAT('2023-07-25', '%a') |
+---------------------------------+
| Tue                             |
+---------------------------------+

Hier is nog een voorbeeld dat door de verschillende dagen van de week loopt:

SELECT 
    DATE_FORMAT('2023-07-24', '%a') AS "1",
    DATE_FORMAT('2023-07-25', '%a') AS "2",
    DATE_FORMAT('2023-07-26', '%a') AS "3",
    DATE_FORMAT('2023-07-27', '%a') AS "4",
    DATE_FORMAT('2023-07-28', '%a') AS "5",
    DATE_FORMAT('2023-07-29', '%a') AS "6",
    DATE_FORMAT('2023-07-30', '%a') AS "7";

Resultaat:

+------+------+------+------+------+------+------+
| 1    | 2    | 3    | 4    | 5    | 6    | 7    |
+------+------+------+------+------+------+------+
| Mon  | Tue  | Wed  | Thu  | Fri  | Sat  | Sun  |
+------+------+------+------+------+------+------+

U kunt ook andere datum- en tijdseenheden retourneren, maar dit artikel gaat specifiek over het retourneren van de korte dagnaam. Zie MariaDB Format Strings voor een lijst met formaatspecificaties die kunnen worden gebruikt met DATE_FORMAT() .

Andere benaderingen

Er zijn andere manieren om de korte dagnaam van een datum te krijgen waarbij het eerste deel van de dag wordt afgesneden.

Dit kan echter meer foutgevoelig zijn dan de bovenstaande methode (plus het is ingewikkelder). U kunt onverwachte resultaten krijgen als u deze methode gebruikt, vooral als u met verschillende talen werkt.

Hier zijn enkele voorbeelden om te laten zien wat ik bedoel.

In plaats van de %a formaatspecificatie zoals we deden in het vorige voorbeeld, we zouden de %W . kunnen gebruiken formaatspecificatie om de naam van de volledige dag te retourneren, en retourneer dat resultaat in te korten met een functie zoals LEFT() .

Voorbeeld:

SELECT 
    DATE_FORMAT('2023-07-25', '%W') AS Full,
    LEFT(DATE_FORMAT('2023-07-25', '%W'), 3) AS Short;

Resultaat:

+---------+-------+
| Full    | Short |
+---------+-------+
| Tuesday | Tue   |
+---------+-------+

We kunnen ook een functie gebruiken zoals CAST() om te converteren naar een gegevenstype met slechts drie tekens, zoals dit:

SELECT 
    DATE_FORMAT('2023-07-25', '%W') AS Full,
    CAST(DATE_FORMAT('2023-07-25', '%W') AS CHAR(3)) AS Short;

Resultaat:

+---------+-------+
| Full    | Short |
+---------+-------+
| Tuesday | Tue   |
+---------+-------+

Dit werkt prima bij het werken met de Engelse taal (en misschien enkele andere talen). Maar laten we eens kijken wat er gebeurt als we overschakelen naar een andere taal, bijvoorbeeld Japans:

SELECT 
    DATE_FORMAT('2023-07-25', '%W', 'ja_JP') AS Full,
    LEFT(DATE_FORMAT('2023-07-25', '%W', 'ja_JP'), 3) AS Short;

Resultaat:

+-----------+-----------+
| Full      | Short     |
+-----------+-----------+
| 火曜日     | 火曜日     |
+-----------+-----------+

In dit geval is er geen verschil.

In tegenstelling, dit is wat er gebeurt als we de %a . gebruiken formaatspecificatie om de korte dagnaam te retourneren:

SELECT 
    DATE_FORMAT('2023-07-25', '%W', 'ja_JP') AS Full,
    DATE_FORMAT('2023-07-25', '%a', 'ja_JP') AS Short;

Resultaat:

+-----------+-------+
| Full      | Short |
+-----------+-------+
| 火曜日     | 火    |
+-----------+-------+

Dus ik raad aan om de %a . te gebruiken formaatspecificatie waar mogelijk.


  1. Wanneer of waarom een ​​SET DEFINE OFF gebruiken in Oracle Database?

  2. OPGELOST:Microsoft Office 365 versie 2009 kan uw databasetoepassing breken

  3. Plezier met berichten

  4. Een lijst maken van alle opgeslagen procedures in MariaDB