MySQL има куп различни функции, които ни позволяват да получаваме различни части за дата – като ден, месец и година – от дадена дата.
DATE_FORMAT()
Функция
DATE_FORMAT()
функцията е страхотна, ако искате да върнете всички части за дата в едно поле.
Пример:
SELECT DATE_FORMAT('2035-12-19', '%W, %D %M %Y');
Резултат:
Wednesday, 19th December 2035
Можете също да върнете само кратките имена на дни и месеци, ако това е желаният резултат:
SELECT DATE_FORMAT('2035-12-19', '%a, %D %b %Y');
Резултат:
Wednesday, 19th December 2035
Или можете да върнете номерата на деня и месеца:
SELECT DATE_FORMAT('2035-12-19', '%d/%c/%Y');
Резултат:
19/12/2035
Можете също да върнете всяка част от датата в собствено поле, ако е необходимо:
SELECT
DATE_FORMAT('2035-12-19', '%d') AS Day,
DATE_FORMAT('2035-12-19', '%c') AS Month,
DATE_FORMAT('2035-12-19', '%Y') AS Year;
Резултат:
+------+-------+------+ | Day | Month | Year | +------+-------+------+ | 19 | 12 | 2035 | +------+-------+------+
Вижте този пълен списък с спецификатори на формат за пълен преглед на спецификаторите на формат, които можете да използвате, за да създадете низ за формат.
DATE_FORMAT()
също така приема незадължителен аргумент за локал, който можете да използвате, за да посочите езика на имената на дните и месеца. Вижте MySQL DATE_FORMAT()
Примери за повече.
EXTRACT()
Функция
EXTRACT()
функцията ви позволява да извлечете определена единица от датата. Следователно можете да го използвате, за да извлечете деня, месеца и годината (както и други единици) от датата.
Пример:
SELECT
EXTRACT(DAY FROM '2035-12-19') AS Day,
EXTRACT(MONTH FROM '2035-12-19') AS Month,
EXTRACT(YEAR FROM '2035-12-19') AS Year;
Резултат:
+------+-------+------+ | Day | Month | Year | +------+-------+------+ | 19 | 12 | 2035 | +------+-------+------+
Функции за връщане на конкретна единица за дата
MySQL също има някои по-специфични функции, които връщат конкретна единица за дата.
По-долу е даден списък с функциите, които връщат деня, месеца и годината от дата.
DAYNAME()
Функция
MySQL има повече от една функция за връщане на деня. Това е така, защото има повече от един начин за представяне на деня. MySQL трябва да знае дали искате името на деня, номера на деня от седмицата, деня от месеца, деня от годината и т.н.
DAYNAME()
функцията връща името на деня от седмицата:
SELECT DAYNAME('2035-12-19');
Резултат:
Wednesday
DAYOFMONTH()
Функция
DAYOFMONTH()
функцията връща номера на деня от месеца.
Пример:
SELECT DAYOFMONTH('2035-12-19');
Резултат:
19
DAY()
Функция
DAY()
функцията всъщност е синоним на DAYOFMONTH()
функция.
Пример:
SELECT DAY('2035-12-19');
Резултат:
19
Както се очакваше, същият резултат като DAYOFMONTH()
.
DAYOFWEEK()
Функция
DAYOFWEEK()
функцията връща индекса на деня от седмицата за датата, както е посочено от стандарта ODBC (1
=Неделя, 2
=Понеделник, …, 7
=събота).
Пример:
SELECT DAYOFWEEK('2035-12-19');
Резултат:
4
Вижте WEEKDAY()
по-долу за различно индексиране.
WEEKDAY()
Функция
WEEKDAY()
функцията е подобна на DAYOFWEEK()
в това, че връща индекса на седмицата за датата. Разликата е, че използва различно номериране на индекса (0
=Понеделник, 1
=вторник, … 6
=неделя).
Пример:
SELECT WEEKDAY('2035-12-19');
Резултат:
2
DAYOFYEAR()
Функция
DAYOFYEAR()
функцията връща деня от годината за датата в диапазона 1
до 366
.
Пример:
SELECT DAYOFYEAR('2035-12-19');
Резултат:
353
MONTH()
Функция
MONTH()
функцията връща месеца в диапазона 1
до 12
за януари до декември или 0
за дати, които имат нулева част от месеца (като 0000-00-00
).
Пример:
SELECT MONTH('2035-12-19');
Резултат:
12
MONTHNAME()
Функция
Както подсказва името, MONTHNAME()
функцията връща името на месеца. Езикът, използван за името, се контролира от стойността на lc_time_names
системна променлива.
Пример:
SELECT MONTHNAME('2035-12-19');
Резултат:
December
YEAR()
Функция
YEAR()
функцията връща годината на датата.
Пример:
SELECT YEAR('2035-12-19');
Резултат:
2035