MariaDB включва много функции за работа с дати. Някои от тях извличат определени части от такива дати и ги връщат като низ или цяло число.
По-долу са 11 функции, които можете да използвате за връщане на различни части за дата в MariaDB.
Функциите
Първо, ето функциите:
DATE_FORMAT()
EXTRACT()
DAYNAME()
- DAYOFMONTH()
DAY()
DAYOFWEEK()
WEEKDAY()
DAYOFYEAR()
MONTH()
MONTHNAME()
YEAR()
По-долу са дадени примери за всяка функция.
DATE_FORMAT()
Функция
DATE_FORMAT()
функцията ви позволява да форматирате дата въз основа на низ за форматиране. Форматният низ указва как трябва да бъде форматирана датата. Вие създавате свой собствен низ за формат на базата на един или повече спецификатори на формат.
Ето пример за използване на DATE_FORMAT()
за да върнете деня, месеца и годината от дата:
SELECT DATE_FORMAT('2023-07-25', '%W, %D %M %Y');
Резултат:
+------------------------------------+| DATE_FORMAT('2023-07-25', '%W, %D %M %Y') |+-------------------------- -----------------+| вторник, 25 юли 2023 г. |+--------------------------------------------------- +
Хубавото на тази функция е, че можете да върнете много варианти на датата. Например, можете да върнете само кратките имена на дни и месеци:
SELECT DATE_FORMAT('2023-07-25', '%a, %D %b %Y');
Резултат:
+------------------------------------+| DATE_FORMAT('2023-07-25', '%a, %D %b %Y') |+-------------------------- -----------------+| вт, 25 юли 2023 г. |+-------------------------------------------------------- +
Или можете да върнете номерата на деня и месеца:
SELECT DATE_FORMAT('2023-07-25', '%d/%c/%Y');
Резултат:
+---------------------------------------+| DATE_FORMAT('2023-07-25', '%d/%c/%Y') |+-------------------------- ------------+| 25/7/2023 |+------------------------------------------------+
Вижте този пълен списък с спецификатори на формат за пълен преглед на спецификаторите на формат, които можете да използвате, за да създадете низ за формат.
DATE_FORMAT()
също така приема незадължителен аргумент за локал, който можете да използвате, за да посочите езика на имената на дните и месеца. Това е доста гъвкава функция. Вижте DATE_FORMAT()
за още примери.
EXTRACT()
Функция
функцията ви позволява да извлечете определена единица от датата. Така че можете да го използвате, за да извлечете деня, месеца и годината (както и други единици) от датата.EXTRACT
()
Пример:
SELECT
EXTRACT(DAY FROM '2023-07-25') AS Day,
EXTRACT(MONTH FROM '2023-07-25') AS Month,
EXTRACT(YEAR FROM '2023-07-25') AS Year;
Резултат:
+------+-------+------+| Ден | Месец | Година |+------+-------+-----+| 25 | 7 | 2023 |+------+-------+------+
Функции за връщане на конкретна единица за дата
MariaDB също има куп по-специфични функции, които връщат конкретна единица за дата.
По-долу е даден списък с функциите, които връщат деня, месеца и годината от дата.
DAYNAME()
Функция
Има доста функции за връщане на деня в MariaDB (и повечето други СУБД). Това е така, защото MariaDB трябва да знае дали искате името на деня, номера на деня от седмицата, деня от месеца, деня от годината и т.н.
DAYNAME()
функцията връща името на деня от седмицата.
Пример:
SELECT DAYNAME('2023-07-25');
Резултат:
<пред>+-----------------------+| DAYNAME('2023-07-25') |+-----------------------+| вторник |+-----------------------+DAYOFMONTH()
Функция
DAYOFMONTH()
функцията връща номера на деня от месеца.
Пример:
SELECT DAYOFMONTH('2023-07-25');
Резултат:
+-------------------------+| DAYOFMONTH('2023-07-25') |+--------------------------+| 25 |+-------------------------+
DAY()
Функция
DAY()
функцията всъщност е синоним на DAYOFMONTH()
функция.
Пример:
SELECT DAY('2023-07-25');
Резултат:
+------------------+| DAY('2023-07-25') |+------------------+| 25 |+------------------+
Както се очакваше, същият резултат като DAYOFMONTH()
.
DAYOFWEEK()
Функция
DAYOFWEEK()
функцията връща индекса на деня от седмицата за датата, както е посочено от стандарта ODBC (1
=Неделя, 2
=Понеделник, …, 7
=събота).
Пример:
SELECT DAYOFWEEK('2023-07-25');
Резултат:
+------------------------+| DAYOFWEEK('2023-07-25') |+-------------------------+| 3 |+-------------------+
Вижте WEEKDAY()
по-долу за различно индексиране.
WEEKDAY()
Функция
WEEKDAY()
функцията е подобна на DAYOFWEEK()
в това, че връща индекса на седмицата за датата. Разликата е, че използва различно номериране на индекса (0
=Понеделник, 1
=вторник, … 6
=неделя).
Пример:
SELECT WEEKDAY('2023-07-25');
Резултат:
<пред>+-----------------------+| WEEKDAY('2023-07-25') |+-----------------------+| 1 |+-----------------------+DAYOFYEAR()
Функция
DAYOFYEAR()
функцията връща деня от годината за датата в диапазона 1
до 366
.
Пример:
SELECT DAYOFYEAR('2023-07-25');
Резултат:
+------------------------+| DAYOFYEAR('2023-07-25') |+-------------------------+| 206 |+------------------------+
MONTH()
Функция
MONTH()
функцията връща месеца в диапазона 1
до 12
за януари до декември или 0
за дати, които имат нулева част от месеца (като 0000-00-00
).
Пример:
SELECT MONTH('2023-07-25');
Резултат:
+---------------------+| MONTH('2023-07-25') |+---------------------+| 7 |+---------------------+
MONTHNAME()
Функция
Както подсказва името, MONTHNAME()
функцията връща името на месеца. Езикът, използван за името, се контролира от стойността на lc_time_names
системна променлива.
Пример:
SELECT MONTHNAME('2023-07-25');
Резултат:
+------------------------+| MONTHNAME('2023-07-25') |+-------------------------+| юли |+-------------------+
YEAR()
Функция
YEAR()
функцията връща годината на датата.
Пример:
SELECT YEAR('2023-07-25');
Резултат:
+-------------------+| YEAR('2023-07-25') |+-------------------+| 2023 |+-------------------+