Ето три начина да върнете името на месеца от дата в 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 | +----------+-----------+-----------------------+ | ส.ค. | สิง | สิงหาคม | +----------+-----------+-----------------------+