(о том, как действуют команды SET и SET GLOBAL, рассказывалось в подразделе «Вставка отдельных строк», когда речь шла об установке значения переменной sql_mode).

...

Примечание

Чтобы установить для отображения дат украинский или белорусский язык, присвойте переменной lc_time_names значение uk_UA или, соответственно, be_BY.

• DAYOFWEEK('<Дата или дата и время>').

Функция DAYOFWEEK() получает в качестве аргумента дату или дату и время и вычисляет порядковый номер дня недели, которым является эта дата (1 – воскресенье, 2 – понедельник и т. д.). Например, DAYOFWEEK(2007 -12-12) возвращает значение 4, и это означает, что 12 декабря 2007 г. – среда.

• WEEKDAY ('<Дата или дата и время>').

Функция WEEKDAY() получает в качестве аргумента дату или дату и время и вычисляет порядковый номер дня недели, которым является эта дата (0 – понедельник, 1 – вторник и т. д.). Например, DAYOFWEEK(2007-12-12) возвращает значение 2, и это означает, что 12 декабря 2007 г. – среда.

• DAYOFYEAR('<Дата или дата и время>').

Функция DAYOFYEAR() получает в качестве аргумента дату или дату и время и вычисляет для нее порядковый номер дня в году. Например, DAYOFYEAR(2007-12-12) возвращает значение 34 6.

• LAST_DAY('<Дата или дата и время>').

Функция LAST_DAY() получает в качестве аргумента дату или дату и время и возвращает дату, соответствующую последнему дню в месяце, которому принадлежит исходная дата. Например, LAST_DAY(2007-12-12) возвращает значение 2007-12-31, поскольку последнее число декабря – 31.

• WЕЕK ('<Дата или дата и время>' [,Правило нумерации]).

Функция WEEK() получает в качестве аргумента дату или дату и время и возвращает номер недели в году. По умолчанию неделя считается начинающейся с воскресенья, и первой неделей считается та неделя, воскресенье которой принадлежит данному году, а для дней, предшествующих первой неделе, номер недели равен 0. Например, WEEK(2007-12-31) = 52 и WEEK(2008-01-01) = 0.

Вы можете также задать параметр, определяющий правило нумерации недель.

• 0 – неделя считается начинающейся с воскресенья, первая неделя года – целиком находящаяся в этом году, для дней, предшествующих первой неделе, номер недели равен 0. Например, WEEK('2008-01-01',0) = 0.

• 1 – неделя считается начинающейся с понедельника, первая неделя года – та, более трех дней которой находится в этом году, для дней, предшествующих первой неделе, номер недели равен 0. Например, WEEK('2008-01-01',1) = 1.

• 2 – неделя считается начинающейся с воскресенья, первая неделя года – целиком находящаяся в этом году, для дней, предшествующих первой неделе, номер недели равен номеру последней недели в предыдущем году. Например, WEEK('2008-01-01',2) = 52.

• 3 – неделя считается начинающейся с понедельника, первая неделя года – та, более трех дней которой находится в этом году, для дней, предшествующих первой неделе, номер недели равен номеру последней недели в предыдущем году. Например, WEEK('2008-01-01',3) = 1.

• 4 – неделя считается начинающейся с воскресенья, первая неделя года – та, более трех дней которой находится в этом году, для дней, предшествующих первой неделе, номер недели равен 0. Например, WEEK('2008-01-01',4) = 1.

• 5 – неделя считается начинающейся с понедельника, первая неделя года – целиком находящаяся в этом году, для дней, предшествующих первой неделе, номер недели равен 0. Например, WEEK('2008-01-01',5) = 0.

• 6 – неделя считается начинающейся с воскресенья, первая неделя года – та, более трех дней которой находится в этом году, для дней, предшествующих первой неделе, номер недели равен номеру последней недели в предыдущем году. Например, WEEK('2008-01-01',6) = 1.

• 7 – неделя считается начинающейся с понедельника, первая неделя года – целиком находящаяся в этом году, для дней, предшествующих первой неделе, номер недели равен номеру последней недели в предыдущем году. Например, WEEK('2008-01-01',7) = 53.

• WEEKOFYEAR('<Дата или дата и время> ').

Является синонимом WEEKOFYEAR(<Дата или дата и время>,3).

• MONTHNAME ('<Дата или дата и время>').

Функция MONTHNAME() получает в качестве аргумента дату или дату и время и возвращает наименование месяца, которому принадлежит эта дата. Например, MONTHNAME('2007-12-12') возвращает значение December. О том, как настроить вывод дат на русском языке, рассказывалось при описании функции DAYNAME().

• MONTH('<Дата или дата и время>').

Функция MONTH() получает в качестве аргумента дату или дату и время и возвращает номер месяца, которому принадлежит эта дата. Например, MONTH('2007-12-12') возвращает значение 12.

• QUARTER('<Дата или дата и время>').

Функция QUARTER() получает в качестве аргумента дату или дату и время и возвращает номер квартала, которому принадлежит эта дата. Например, QUARTER('2007-12-12') возвращает значение 4.

• YEAR('<Дата или дата и время>').

Функция YEAR() получает в качестве аргумента дату или дату и время и возвращает номер года, которому принадлежит эта дата. Например, YEAR('2007-12–12') возвращает значение 2007.

• YEARWEEK('<Дата или дата и время>' [,Правило нумерации]).

Функция YEARWEEK() получает в качестве аргумента дату или дату и время и возвращает номер года и номер недели в году в формате YYYYWW. По умолчанию неделя считается начинающейся с воскресенья, и первой неделей считается та неделя, воскресенье которой принадлежит данному году, а дни, предшествующие первой неделе, считаются относящимися к последней неделе предыдущего года. Например, YEARWEEK ('2007-12-31') = YEARWEEK('2008-01-01') = 200752, и это означает, что обе даты относятся к 52-й неделе 2007 г.

Вы можете также задать параметр, определяющий правило нумерации недель. Этот параметр аналогичен соответствующему параметру функции WEEK(), о которой мы рассказывали выше, однако для тех дат, для которых функция WEEK() возвращает значение 0, функция YEARWEEK() возвращает номер предыдущего года и номер последней недели предыдущего года. Например, WEEK('2008-01-01',5) = 200753.

• HOUR('<Время или дата и время>').

Функция HOUR() получает в качестве аргумента время или дату и время и выделяет из нее часы. Например, HOUR('12:30:00') возвращает значение 12.

• MINUТЕ('<Время или дата и время>').

Функция MINUTE() получает в качестве аргумента время или дату и время и выделяет из нее минуты. Например, MINUTE('12:30:00') возвращает значение 30.

• SECOND('<Время или дата и время>').

Функция SECOND() получает в качестве аргумента время или дату и время и выделяет из нее секунды. Например, SECOND ('12:30:00') возвращает значение 0.

• EXTRACT('<Наименование периода>' FROM '<Дата и/или время>'). Функция EXTRACT() – наиболее общая из функций получения компонентов даты и времени. Первым ее аргументом является наименование компонента или диапазона компонентов, которые нужно выделить из даты:

• DAY – число (номер дня в месяце);

• WEEK – номер недели в году;

• MONTH – номер месяца;

• QUARTER – номер квартала;

• YEAR – номер года;

• HOUR – часы;

• MINUTE – минуты;

• SECOND – секунды;

• YEAR_MONTH – номер года и номер месяца;

• DAY_HOUR – число и часы;

• DAY_MINUTE – число, часы и минуты;

• DAY_SECOND – число, часы, минуты и секунды;

• HOUR_MINUTE – часы и минуты;

• HOUR_SECOND – часы, минуты и секунды;

• MINUTE_SECOND – минуты и секунды.

Вторым аргументом функции может быть дата и время, а также, в зависимости от извлекаемого компонента, либо дата, либо время.

Например, EXTRACT(WEEK FROM '2007-12-31') возвращает, как и WEEK('2007-12–31'), значение 52, а EXTRACT(DAY_MINUTE FROM '2007-12-31 12:30:00') возвращает значение 311230 (31 число, 12 часов и 30 минут).

В следующем подразделе я расскажу о функциях, позволяющих выполнять арифметические операции с датами.

Функции сложения и вычитания дат

Рассмотрим функции, которые вы можете использовать для выполнения арифметических операций.

• ADDDATE('<Дата или дата и время>',<Количество дней>) или ADDDATE ('<Дата или дата и время>',<Временной интервал>). Функция возвращает дату или дату и время, сдвинутые относительно указанной даты на указанное количество дней или на указанный временной интервал. Для задания интервала можно использовать один из следующих основных форматов:

• INTERVAL '<Количество секунд>' SECOND

• INTERVAL '<Количество минут>' MINUTE

• INTERVAL '<Количество часов>' HOUR

• INTERVAL '<Количество дней>' DAY

• INTERVAL '<Количество недель>' WEEK

• INTERVAL '<Количество месяцев>' MONTH

• INTERVAL '<Количество кварталов>' QUARTER

• INTERVAL '<Количество лет>' YEAR

• INTERVAL '<Количество минут>:<Количество секунд>' MINUTE_SECOND

• INTERVAL '<Количество часов>:<Количество минут>:<Количество секунд>'

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату