Ето три начина да върнете името на месеца от дата в MariaDB.
MONTHNAME() Функция
MONTHNAME() функцията е проектирана специално за връщане на името на месеца от дата. За да направите това, предайте датата на функцията, когато я извиквате. Ще бъде върнато пълното име на месеца.
Пример:
SELECT MONTHNAME('2021-08-19'); Резултат:
+-------------------------+
| MONTHNAME('2021-08-19') |
+-------------------------+
| August |
+-------------------------+
Езикът, използван за името на месеца, се контролира от стойността на lc_time_names системна променлива. Вижте MONTHNAME() за пример как това се отразява на изхода.
DATE_FORMAT() Функция
DATE_FORMAT() функцията форматира дадена дата в определен формат. Посочвате датата и формата, когато извиквате функцията.
Можете да върнете пълното име на месеца, като подадете %M като низ за форматиране.
Пример:
SELECT DATE_FORMAT('2021-08-19', '%M'); Резултат:
+---------------------------------+
| DATE_FORMAT('2021-08-19', '%M') |
+---------------------------------+
| August |
+---------------------------------+
Както при MONTHNAME() , езикът, използван за името на месеца, се контролира от стойността на lc_time_names системна променлива. Въпреки това, DATE_FORMAT() функцията приема незадължителен трети аргумент, който ви позволява да посочите локала.
Ето пример за определяне на локал:
SELECT DATE_FORMAT('2021-08-19', '%M', 'ca_ES'); Резултат:
+------------------------------------------+
| DATE_FORMAT('2021-08-19', '%M', 'ca_ES') |
+------------------------------------------+
| agost |
+------------------------------------------+ Име на кратък месец
Подаване на %b към DATE_FORMAT() функцията връща краткото име на месеца.
Пример:
SELECT DATE_FORMAT('2021-08-19', '%b'); Резултат:
+---------------------------------+
| DATE_FORMAT('2021-08-19', '%b') |
+---------------------------------+
| Aug |
+---------------------------------+
Това може да бъде репликирано с MONTHNAME() функция с помощта на LEFT() за да вземете първите 3 знака от името на месеца.
Пример:
SELECT LEFT(MONTHNAME('2021-08-19'), 3); Резултат:
+----------------------------------+
| LEFT(MONTHNAME('2021-08-19'), 3) |
+----------------------------------+
| Aug |
+----------------------------------+
Същата концепция може да бъде постигната чрез преобразуване на резултата от MONTHNAME() към тип данни от три знака с функция като CAST() .
Въпреки това, докато този подход работи в en_US , може да не работи винаги на други езици. Например:
SET lc_time_names = 'th_TH';
SELECT
DATE_FORMAT('2021-08-19', '%b') AS "Short 1",
LEFT(MONTHNAME('2021-08-19'), 3) AS "Short 2",
MONTHNAME('2021-08-19') AS "Full"; Резултат:
+----------+-----------+-----------------------+ | Short 1 | Short 2 | Full | +----------+-----------+-----------------------+ | ส.ค. | สิง | สิงหาคม | +----------+-----------+-----------------------+