...
Примечание
Чтобы установить для отображения дат украинский или белорусский язык, присвойте переменной 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 \'<Количество часов>:<Количество минут>:<Количество секунд>\' HOUR_SECOND
• INTERVAL \'<Количество часов>:<Количество минут>\' HOUR_MINUTE