Например, 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
• INTERVAL \'<���Количество дней> <���Количество часов>:<���Количество минут>:<���Количество секунд>\' DAY SECOND
• INTERVAL \'<���Количество дней> <���Количество часов>:<���Количество минут>\' DAY_MINUTE
• INTERVAL \'<���Количество дней> <���Количество часов>\' DAY_HOUR
• INTERVAL \'<���Количество лет>-<���Количество месяцев>\' YEAR MONTH
Например, функция ADDDATE(\'2007-12-12\',28) добавляет 28 дней к 12 декабря 2007 г. и возвращает результат 2008-01-09, а функция ADDDATE(\'2007-12-12\',INTERVAL \'28 12:30\' DAY_MINUTE) добавляет 28 дней, 12 часов и 30 минут к 12 декабря 2007 г. и возвращает результат 2008-01-09 12:30:00.
• DATE_ADD(\'<���Дата или дата и время>\',\'<���Временной интервал>\').
Синоним ADDDATE(\'<���Дата или дата и время>\',\'<���Временной интервал>\').
• ADDTIME(<���Время или дата и время>,<���Добавляемое время>).
Функция возвращает сумму своих аргументов. Например, функция ADDTIME (\'2007-12-12 12:30:00\',\'15:50:00\') добавляет 15 часов 50 минут к 12 часам 30 минутам 12 декабря 2007 г. и возвращает результат 2007-12-13 04:20:00.
• SUBDATE(\'<���Дата или дата и время>\',<���Количество дней>) или SUBDATE(\'<���Дата или дата и время>\',\'<���Временной интервал>\').
Функция SUBDATE() аналогична функции ADDDATE(), только указанное количество дней или указанный временной интервал не добавляются к дате, а вычитаются из нее, иными словами, дата сдвигается в прошлое, а не в будущее. Например, функция SUBDATE(\'2007-12-12\',INTERVAL \'28 12:30\' DAY_MINUTE) вычитает 28 дней, 12 часов и 30 минут из 12 декабря 2007 г. и возвращает результат 2007-11-13 11:30:00.
• DATE_SUB(\'<���Дата или дата и время>\',\'<���Временной интервал>\')
Синоним SUBDATE(\'<���Дата или дата и время>\',\'<���Временной интервал>\').
• SUBTIME(<���Время или дата и время>,<���Вычитаемое время>).
Функция возвращает разность своих аргументов. Например, функция SUBTIME(\'2007-12-12 12:30:00\',\'15:50:00\') вычитает 15 часов 50 минут из 12 часов 30 минут 12 декабря 2007 г. и возвращает результат 2007-12-11 20:40:00.
• DATEDIFF(\'<���Дата или дата и время>\',\'<���Дата или дата и время>\').
Функция DATEDIFF() возвращает разность в днях между первой и второй датой (время при этом не учитывается). Если первая дата предшествует второй, результат будет отрицательным. Например, DATEDIFF(\'2007-12-12 12:30:00\',\'2007-12-31\') возвращает значение –19.
• TIMEDIFF(\'<���Время или дата и время>\',\'<���Время или дата и время>\').
Функция TIMEDIFF() возвращает разность своих аргументов в формате времени. Если первый момент предшествует второму, результат будет отрицательным. Например, функция TIMEDIFF(\'2007-12-12 12:30:00\',\'2007-12-31 15:50:00\') возвращает значение –459:20:00. Это означает, что 12 декабря 2007 г. 12 часов 30 минут отстоит в прошлое от 31 декабря 2007 г. 15 часов 50 минут на 459 часов 20 минут.
• PERIOD_ADD(<���Период в формате YYMM или YYYYMM>,<���Количество месяцев>).
Функция PERIOD_ADD() возвращает результат добавления к указанному периоду указанное количество месяцев. Обратите внимание, что оба аргумента этой функции – числа и возвращаемый результат – также число. Например, PERIOD_ADD(200712,3) возвращает значение 200803, поскольку через три месяца после декабря 2007 г наступит март 2008 г.
Читать дальше
Конец ознакомительного отрывка
Купить книгу