MariaDB има няколко функции, които ви позволяват да извличате различни части за дата и час от стойности за дата/час. Можете да ги използвате, за да разделите всеки компонент за дата/час в отделна колона, ако е необходимо.
По-долу са дадени три начина за извличане на година, месец и ден от стойност на дата в MariaDB.
YEAR()
, MONTH()
и DAY()
Функции
YEAR()
, MONTH()
и DAY()
функциите извличат годината, месеца и деня съответно от стойност на дата или дата и час.
Ето пример за използване на тези функции за връщане на всеки компонент за дата в собствена колона:
SELECT
YEAR('2025-08-30') AS "Year",
MONTH('2025-08-30') AS "Month",
DAY('2025-08-30') AS "Day";
Резултат:
+------+-------+------+ | Year | Month | Day | +------+-------+------+ | 2025 | 8 | 30 | +------+-------+------+
DAY()
функцията всъщност е синоним на DAYOFMONTH()
, така че всеки от тях ще върне същия резултат.
Има и WEEKDAY()
функция, DAYOFWEEK()
функция, DAYOFYEAR()
функция и DAYNAME()
функция, всяка от които връща различно представяне на деня.
Освен това има MONTHNAME()
функция, която връща името на месеца, вместо неговия номер.
Ето още един пример, който включва тези функции:
SELECT
YEAR('2025-08-30') AS "YEAR",
MONTH('2025-08-30') AS "MONTH",
MONTHNAME('2025-08-30') AS "MONTHNAME",
DAY('2025-08-30') AS "DAY",
DAYOFMONTH('2025-08-30') AS "DAYOFMONTH",
WEEKDAY('2025-08-30') AS "WEEKDAY",
DAYOFWEEK('2025-08-30') AS "DAYOFWEEK",
DAYOFYEAR('2025-08-30') AS "DAYOFYEAR",
DAYNAME('2025-08-30') AS "DAYNAME";
Резултат (с помощта на вертикален изход):
YEAR: 2025 MONTH: 8 MONTHNAME: August DAY: 30 DAYOFMONTH: 30 WEEKDAY: 5 DAYOFWEEK: 7 DAYOFYEAR: 242 DAYNAME: Saturday
Можете също да използвате функции като WEEK()
за да върнете номера на седмицата и QUARTER()
за да върнете тримесечието.
Пример:
SELECT
WEEK('2025-08-30') AS "Week",
QUARTER('2025-08-30') AS "Quarter";
Резултат:
+------+---------+ | Week | Quarter | +------+---------+ | 34 | 3 | +------+---------+
WEEK()
функцията приема втори аргумент, който ви позволява да посочите режима. Това може да промени получения номер на седмицата в зависимост от действителната дата. Вижте как WEEK()
Работи в MariaDB за повече информация и пример.
EXTRACT()
Функция
EXTRACT()
функцията ви позволява да извлечете определена единица от стойността за дата/час. Следователно можете да го използвате за извличане на година, месец и ден от датата (както и седмица и тримесечие, ако е необходимо).
Пример:
SELECT
EXTRACT(YEAR FROM '2023-03-12') AS "Year",
EXTRACT(MONTH FROM '2023-03-12') AS "Month",
EXTRACT(DAY FROM '2023-03-12') AS "Day",
EXTRACT(WEEK FROM '2023-03-12') AS "Week",
EXTRACT(QUARTER FROM '2023-03-12') AS "Quarter";
Резултат:
+------+-------+------+------+---------+ | Year | Month | Day | Week | Quarter | +------+-------+------+------+---------+ | 2023 | 3 | 12 | 11 | 1 | +------+-------+------+------+---------+
DATE_FORMAT()
Функция
DATE_FORMAT()
функцията ви позволява да форматирате стойност на дата или дата и час въз основа на низ за форматиране. Форматният низ указва как трябва да се форматира датата/часът.
Следователно можем да използваме тази функция, за да върнем годината, месеца, деня и седмицата от дадена дата.
Пример:
SELECT
DATE_FORMAT('2035-12-08', '%Y') AS "Year",
DATE_FORMAT('2035-12-08', '%m') AS "Month",
DATE_FORMAT('2035-12-08', '%d') AS "Day",
DATE_FORMAT('2035-12-08', '%U') AS "Week";
Резултат:
+------+-------+------+------+ | Year | Month | Day | Week | +------+-------+------+------+ | 2035 | 12 | 08 | 48 | +------+-------+------+------+
Има няколко възможни спецификатора на формат за всяка част от датата. Всяка част от датата може да върне различна стойност в зависимост от предоставения действителен спецификатор на формат. Например, можете да върнете пълното име на месеца, като използвате %M
вместо %m
.
Вижте MariaDB Format Strings за пълен списък с низове/спецификатори на формат, които могат да се използват с DATE_FORMAT()
.