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() .