sql >> Databáze >  >> RDS >> MariaDB

Jak získat krátký název měsíce z data v MariaDB

V MariaDB můžete použít DATE_FORMAT() funkce pro vrácení různých částí data z data. Jednou z věcí, které můžete vrátit, je krátký název měsíce. Například Nov nebo Dec (místo November nebo Dec ).

Specifikátor formátu „Krátký název měsíce“ (%b )

Klíč k vrácení krátkého názvu měsíce při použití DATE_FORMAT() funkcí je použít příslušný specifikátor formátu.

V MariaDB je specifikátor formátu pro krátký název měsíce:%b

Příklad

Zde je příklad k demonstraci:

SELECT DATE_FORMAT('2023-12-25', '%b');

Výsledek:

+---------------------------------+
| DATE_FORMAT('2023-12-25', '%b') |
+---------------------------------+
| Dec                             |
+---------------------------------+

Zde je další příklad, který prochází různými měsíci v roce:

SELECT 
    DATE_FORMAT('2023-01-25', '%b') AS "1",
    DATE_FORMAT('2023-02-25', '%b') AS "2",
    DATE_FORMAT('2023-03-25', '%b') AS "3",
    DATE_FORMAT('2023-04-25', '%b') AS "4",
    DATE_FORMAT('2023-05-25', '%b') AS "5",
    DATE_FORMAT('2023-06-25', '%b') AS "6",
    DATE_FORMAT('2023-07-25', '%b') AS "7",
    DATE_FORMAT('2023-08-25', '%b') AS "8",
    DATE_FORMAT('2023-09-25', '%b') AS "9",
    DATE_FORMAT('2023-10-25', '%b') AS "10",
    DATE_FORMAT('2023-11-25', '%b') AS "11",
    DATE_FORMAT('2023-12-25', '%b') AS "12";

Výsledek (při použití vertikálního výstupu):

 1: Jan
 2: Feb
 3: Mar
 4: Apr
 5: May
 6: Jun
 7: Jul
 8: Aug
 9: Sep
10: Oct
11: Nov
12: Dec

Můžete vrátit i jiné jednotky data a času, ale tento článek je konkrétně o vrácení krátkého názvu měsíce. Viz MariaDB Format Strings pro seznam specifikátorů formátu, které lze použít s DATE_FORMAT() .

Další přístupy

Existují další způsoby, jak získat krátký název měsíce z data, které zahrnují odříznutí první části měsíce.

To však může být náchylnější k chybám než výše uvedená metoda (a navíc je komplikovanější). Při použití této metody můžete získat neočekávané výsledky, zejména při práci s různými jazyky.

Zde je několik příkladů, které demonstrují, co tím myslím.

Místo použití %b specifikátor formátu, jako jsme to udělali v předchozím příkladu, mohli bychom použít %M specifikátor formátu vrátí celý název měsíce a poté vrátí výsledek zkraťte pomocí funkce jako LEFT() .

Příklad:

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

Výsledek:

+---------+-------+
| Full    | Short |
+---------+-------+
| October | Oct   |
+---------+-------+

Alternativně bychom mohli použít funkci jako CAST() převést na datový typ s pouze třemi znaky, jako je tento:

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

Výsledek:

+---------+-------+
| Full    | Short |
+---------+-------+
| October | Oct   |
+---------+-------+

To funguje dobře při práci s anglickým jazykem (a možná i některými dalšími jazyky). Ale podívejme se, co se stane, když přepneme na jiný jazyk – řekněme thajštinu:

SELECT 
    DATE_FORMAT('2023-10-25', '%M', 'th_TH') AS Full,
    LEFT(DATE_FORMAT('2023-10-25', '%M', 'th_TH'), 3) AS Short;

Výsledek:

+--------------------+-----------+
| Full               | Short     |
+--------------------+-----------+
| ตุลาคม              | ตุล        |
+--------------------+-----------+

Zde je však to, co se stane, když použijeme %b specifikátor formátu pro návrat krátkého názvu měsíce:

SELECT 
    DATE_FORMAT('2023-10-25', '%M', 'th_TH') AS Full,
    DATE_FORMAT('2023-10-25', '%b', 'th_TH') AS Short;

Výsledek:

+--------------------+----------+
| Full               | Short    |
+--------------------+----------+
| ตุลาคม              | ต.ค.     |
+--------------------+----------+

Vrátí jiný výsledek.

Takže bych doporučil použít %b specifikátor formátu, kdykoli je to možné.


  1. PHP/MySQL vložit řádek a získat 'id'

  2. Vizualizace bodu zvratu pomocí Plan Explorer

  3. rake db:create throws databáze neexistuje chyba s postgresql

  4. Jak zaokrouhlit průměr na 2 desetinná místa v PostgreSQL?