MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

Jak uzyskać skróconą nazwę miesiąca z daty w MariaDB?

W MariaDB możesz użyć DATE_FORMAT() funkcja zwracająca różne części daty z daty. Jedną z rzeczy, które możesz zwrócić, jest krótka nazwa miesiąca. Na przykład Nov lub Dec (zamiast Nov lub December ).

Specyfikator formatu „Krótka nazwa miesiąca” (%b )

Klucz do zwracania krótkiej nazwy miesiąca przy użyciu DATE_FORMAT() funkcją jest użycie odpowiedniego specyfikatora formatu.

W MariaDB specyfikator formatu dla skróconej nazwy miesiąca to:%b

Przykład

Oto przykład do zademonstrowania:

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

Wynik:

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

Oto kolejny przykład z różnych miesięcy w roku:

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";

Wynik (przy użyciu wyjścia pionowego):

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

Możesz również zwrócić inne jednostki daty i czasu, ale ten artykuł dotyczy w szczególności zwracania krótkiej nazwy miesiąca. Zobacz ciągi formatujące MariaDB, aby uzyskać listę specyfikatorów formatu, których można używać z DATE_FORMAT() .

Inne podejścia

Istnieją inne sposoby na uzyskanie krótkiej nazwy miesiąca z daty, która obejmuje odcięcie pierwszej części miesiąca.

Jednak może to być bardziej podatne na błędy niż powyższa metoda (plus jest bardziej zawiła). Korzystając z tej metody, możesz uzyskać nieoczekiwane wyniki, zwłaszcza podczas pracy z różnymi językami.

Oto kilka przykładów, aby pokazać, o co mi chodzi.

Zamiast używać %b specyfikator formatu, tak jak w poprzednim przykładzie, możemy użyć %M specyfikator formatu, aby zwrócić pełną nazwę miesiąca, a następnie zwrócić skrócić ten wynik za pomocą funkcji takiej jak LEFT() .

Przykład:

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

Wynik:

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

Moglibyśmy alternatywnie użyć funkcji takiej jak CAST() przekonwertować na typ danych składający się tylko z trzech znaków, na przykład:

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

Wynik:

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

Działa to dobrze podczas pracy z językiem angielskim (i być może z kilkoma innymi językami). Zobaczmy jednak, co się stanie, gdy przejdziemy na inny język – powiedzmy tajski:

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

Wynik:

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

Oto jednak, co się dzieje, gdy używamy %b specyfikator formatu, aby zwrócić skróconą nazwę miesiąca:

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

Wynik:

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

Zwraca inny wynik.

Dlatego polecam używanie %b specyfikator formatu, gdy tylko jest to możliwe.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Co nowego w MySQL Galera Cluster 4.0

  2. Zarządzanie kluczami SSL i szyfrowanie danych MySQL w transporcie

  3. MariaDB RTRIM() vs RTRIM_ORACLE():Jaka jest różnica?

  4. Planowanie odzyskiwania po awarii dla MySQL i MariaDB

  5. Jak działa MAKETIME() w MariaDB