MySQL 5.0. Библиотека программиста
Шрифт:
Функция 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 г.
• PERIOD_DIFF(<Период в формате YYMM или YYYYMM>,<Период в формате YYMM или YYYYMM>).
Функция PERIOD_DIFF возвращает разность в месяцах между первым и вторым периодом. Обратите внимание, что оба аргумента этой функции – числа. Например, PERIOD_DIFF(200712,200803) возвращает значение – 3.
• TIMESTAMP(\'<Дата или дата время>\',\'<Время>\').
Функция TIMESTAMP возвращает сумму своих аргументов в формате даты и времени. Например, функция TIMESTAMP(\'2007-12-12 12:30\',\'15:50\') добавляет 15 часов 50 минут к 12 часам 30 минутам 12 декабря 2007г. и возвращает результат 2007-12-13 04:20:00.
• TIMESTAMPADD(<Тип периода>,<Длина периода>,<Дата или дата и время>).
Функция TIMESTAMPADD возвращает дату или дату и время сдвинутые относительно указанной даты на указанный период. Первым аргументом является тип периода:
DAY —число(номерднявмесяце;
WEEK —номернеделивгоду
MONTH —номермесяца
QUARTER —номерквартала
YEAR —номергода
HOUR —часы
MINUTE —минуты
SECOND —секунды
Вторым
Например, функция TIMESTAMPADD(HOUR,15,\'2007-12-12 12:30:00\') добавляет15 часов к 12 часам 30 минутам 12 декабря 2007г. и возвращает результат 2007-12-13 03:30:00.
• TIMESTAMPDIFF(<Тип периода>,<Дата или дата и время>,<Дата или дата и время>).
Функция TIMESTAMPDIFF возвращает количество указанных периодов, прошедших между первым и вторым моментом. Первый аргумент может приниматьте же значения, что и первый аргумент функции TIMESTAMPADD. Если вторая дата предшествует первой, результат будет отрицательным. Например, TIMESTAMPDIFF(WEEK, 2007-12-12 12:30:00, 2007-12-31)возвращает значение 2, и это означает, что 12 декабря и 31 декабря 2007 г. разделяют две недели.
В следующем подразделе мы рассмотрим функции, позволяющие переводить даты из одного формата в другой.
Функции преобразования форматов дат
Для преобразования дат из одного формата в другой вы можете использовать следующие основные функции:
• DATE_FORMAT(\'<Дата или дата и время>\', \'<Формат>\').
Функция DATE_FORMAT возвращает строку, содержащую дату, преобразованную к указанному формату. Формат может включать следующие основные параметры:
• %a – сокращенное наименование дня недели (Sun, Mon и т. д.). О том, как настроить вывод дат на русском языке («Пнд», «Втр» и т. д.), рассказывалось при описании функции DAYNAME.
• %b – сокращенное наименование месяца (Jan, Feb и т. д.). О том, как настроить вывод дат на русском языке (Янв, Фев и т. д.), говорилось при описании функции DAYNAME.
• %c – номер месяца (0-12).
• %D – число (номер дня в месяце) с английским суффиксом (0th, 1st, 2nd, и т. д.).
• %d – число месяца (00–31).
• %e – число месяца (0-31).
• %H – часы (00–23).
• %h, %I – часы (01–12).
• %i – минуты (0 0–5 9).
• %j – номер дня в году (0 01-3 6 6).
• %k – часы (0-23).
• %l – часы (1-12).
• %M – наименование месяца (January, February и т. д.). О том, как настроить вывод дат на русском языке (Января, Февраля и т. д.), говорилось при описании функции DAYNAME.
• %m – номер месяца (00–12).
• %p – AM (обозначение первой половины суток) или PM (обозначение второй половины суток).
• %r – время в 12-часовом формате (HH:MM:SS AM или PM).
• %S, %s – секунды (0 0–5 9).
• %T – время в 24-часовом формате (HH:MM:SS).
• %U – номер недели в году (0 0-53), первым днем недели считается воскресенье, первая неделя года – целиком находящаяся в этом году, для дней, предшествующих первой неделе, номер недели равен 0.