По-долу са три подхода, които можете да използвате, за да получите името на деня от дата в MariaDB.
Два от тези подходи връщат името на целия ден, а единият връща краткото име на деня.
DAYNAME()
Функция
DAYNAME()
функцията е проектирана специално за връщане на името на деня от дата. Просто предайте датата при извикване на функцията и тя ще върне пълното име на деня.
Пример:
SELECT DAYNAME('2021-08-19');
Резултат:
<пред>+-----------------------+| DAYNAME('2021-08-19') |+-----------------------+| четвъртък |+-----------------------+
Езикът, използван за името на деня, се контролира от стойността на lc_time_names
системна променлива. Вижте DAYNAME()
за пример как това се отразява на изхода.
DATE_FORMAT()
Функция
DATE_FORMAT()
функцията форматира дадена дата в определен формат. Посочвате датата и формата, когато извиквате функцията.
Можете да върнете пълното име на деня от седмицата, като подадете %W
като низ за форматиране.
Пример:
SELECT DATE_FORMAT('2021-08-19', '%W');
Резултат:
+--------------------------------+| DATE_FORMAT('2021-08-19', '%W') |+-------------------------------- +| четвъртък |+---------------------------------+
Както при DAYNAME()
, езикът, използван за името на деня, се контролира от стойността на lc_time_names
системна променлива. Въпреки това, DATE_FORMAT()
функцията приема незадължителен трети аргумент, който ви позволява да посочите локала.
Ето пример за определяне на локал:
SELECT DATE_FORMAT('2021-08-19', '%W', 'ca_ES');
Резултат:
+------------------------------------+| DATE_FORMAT('2021-08-19', '%W', 'ca_ES') |+---------------------------- ------------+| dijous |+------------------------------------+
Име за кратък ден
Подаване на %a
към DATE_FORMAT()
функцията връща краткото име на ден от седмицата.
Пример:
SELECT DATE_FORMAT('2021-08-19', '%a');
Резултат:
+--------------------------------+| DATE_FORMAT('2021-08-19', '%a') |+-------------------------------- +| чт |+---------------------------------+
Това може да бъде репликирано с DAYNAME()
функция с помощта на LEFT()
за да вземете първите 3 знака от името на делничния ден.
Пример:
SELECT LEFT(DAYNAME('2021-08-19'), 3);
Резултат:
+--------------------------------+| LEFT(DAYNAME('2021-08-19'), 3) |+--------------------------------+ | чт |+--------------------------------+
Същият ефект може да се постигне и чрез използване на функция като CAST()
за да преобразувате резултата в тип данни с три знака.
Въпреки това, въпреки че този подход работи в en_US
, може да не работи винаги на други езици. Например:
SET lc_time_names = 'th_TH';
SELECT
DATE_FORMAT('2021-08-19', '%a') AS "Short 1",
LEFT(DAYNAME('2021-08-19'), 3) AS "Short 2",
DAYNAME('2021-08-19') AS "Full";
Резултат:
+--------+-----------+----------------------- --+| Кратко 1 | Кратко 2 | Пълен |+---------+-----------+------------------------- -+| พฤ. | พฤห | พฤหัสบดี |+---------+-----------+------------------------- -+