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