По-долу са три подхода, които можете да използвате, за да получите името на деня от дата в 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 | Пълен |+---------+-----------+------------------------- -+| พฤ. | พฤห | พฤหัสบดี |+---------+-----------+------------------------- -+