MariaDB
 sql >> база данни >  >> RDS >> MariaDB

Как да получите краткото име на месеца от дата в MariaDB

В MariaDB можете да използвате DATE_FORMAT() функция за връщане на различни части от дата от дата. Едно от нещата, които можете да върнете, е краткото име на месеца. Например Nov или Dec (вместо Nov или December ).

Определителят на формата „Short Month Name“ (%b )

Ключът за връщане на краткото име на месеца при използване на DATE_FORMAT() функцията е да се използва приложимият спецификатор на формат.

В MariaDB спецификаторът на формата за краткото име на месеца е:%b

Пример

Ето пример за демонстрация:

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

Резултат:

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

Ето още един пример, който минава през различните месеци в годината:

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

Резултат (с помощта на вертикален изход):

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

Можете да върнете и други единици за дата и час, но тази статия е специално за връщането на краткото име на месеца. Вижте MariaDB Format String за списък с спецификатори на формат, които могат да се използват с DATE_FORMAT() .

Други подходи

Има и други начини да получите краткото име на месеца от дата, които включват отрязване на първата част от месеца.

Това обаче може да бъде по-податливо на грешки от горния метод (плюс това е по-сложен). Можете да получите някои неочаквани резултати, когато използвате този метод, особено когато работите с различни езици.

Ето няколко примера, които да демонстрират какво имам предвид.

Вместо да използвате %b спецификатор на формат, както направихме в предишния пример, можем да използваме %M спецификатор на формат, за да върне пълното име на месеца, след което върнете съкратете този резултат с функция като LEFT() .

Пример:

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

Резултат:

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

Като алтернатива бихме могли да използваме функция като CAST() за да конвертирате в тип данни само с три знака, като този:

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

Резултат:

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

Това работи добре при работа с английски език (и може би някои други езици). Но нека видим какво се случва, когато преминем към друг език – да речем, тайландски:

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

Резултат:

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

Но ето какво се случва, когато използваме %b спецификатор на формат, за да върне краткото име на месеца:

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

Резултат:

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

Връща различен резултат.

Затова бих препоръчал да използвате %b спецификатор на формат, когато е възможно.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как работи MONTH() в MariaDB

  2. Как работи WEEKDAY() в MariaDB

  3. 2 начина да разберете към кое тримесечие принадлежи датата в MariaDB

  4. 4 функции, които връщат минутите от времева стойност в MariaDB

  5. MariaDB JSON_MERGE_PRESERVE() Обяснено