Читать интересную книгу MySQL 5.0. Библиотека программиста - Виктор Гольцман

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 24 25 26 27 28 29 30 31 32 ... 50

Функция 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 —секунды

Вторым аргументом является целое число – длина периода, то есть количество единиц измерения, заданных первым параметром. Если длина периода меньше 0, дата, определяемая третьим параметром, будет сдвинута в прошлое.

Например, функция 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.

• %u – номер недели в году (0 0-53), первым днем недели считается понедельник, первая неделя года – та, более трех дней которой находится в этом году, для дней, предшествующих первой неделе, номер недели равен 0.

• %V – номер недели в году (01–53), первым днем недели считается воскресенье, первая неделя года – целиком находящаяся в этом году, для дней, предшествующих первой неделе, номер недели равен номеру последней недели в предыдущем году.

• %v – номер недели в году (01–53), первым днем недели считается понедельник, первая неделя года – та, более трех дней которой находится в этом году, для дней, предшествующих первой неделе, номер недели равен номеру последней недели в предыдущем году.

• %W – наименование дня недели (Sunday, Monday и т. д.). О том, как настроить вывод дат на русском языке (Понедельник, Вторник и т. д.), было сказано при описании функции DAYNAME().

• %w – номер дня недели (0 – воскресенье, 1 – понедельник и т. д.).

• %X – номер года, к которому относится текущая неделя (первым днем недели считается воскресенье, первая неделя года – целиком находящаяся в этом году, неделя, предшествующая первой неделе года, относится к предыдущему году), в формате YYYY.

• %x – номер года, к которому относится текущая неделя (первым днем недели считается понедельник, первая неделя года – та, более трех дней которой находится в этом году, неделя, предшествующая первой неделе года, относится к предыдущему году), в формате YYYY.

• %Y – номер года в формате YYYY.

• %y – номер года в формате YY.

• %% – знак процента.

Например, функция DATE_FORMAT('2007-12-12 12:30:00', %e %M %Y г. %k часов %i минут') возвращает значение 12 December 2007 г. 12 часов 30 минут или 12 Декабря 2007 г. 12 часов 30 минут, в зависимости от установленного языка вывода дат.

• TIME_FORMAT('<Время или дата и время>', '<Формат>').

Функция TIME_FORMAT() возвращает время, преобразованное к указанному формату. Формат может включать те из перечисленных выше параметров, которые предназначены для отображения часов, минут и секунд. Например, функция TIME_FORMAT('2007-12-12 12:30:00', '%k часов %i минут') возвращает значение 12 часов 30 минут.

• STR_TO_DATE('<Строка>', '<Формат>').

Функция STR_TO_DATE() получает в качестве аргумента строку, содержащую дату и/или время, и строку формата, и возвращает дату и/или время, полученные из строки в соответствии с указанным форматом. Функции STR_TO_DATE() и DATE_FORMAT() взаимно обратны: если дата была преобразована в строку некоторого формата с помощью функции DATE_FORMAT(), то с помощью функции STR_TO_DATE(), указав тот же формат, можно получить исходную дату, и наоборот. Например, STR_TO_DATE('12 December 2007 г. 12 часов 30 минут','%e %M %Y г. %k часов %i минут') = STR_TO_DATE(DATE_FORMAT('2007-12-12 12:30:00','%e %M %Y г. %k часов %i минут'), '%e %M %Y г. %k часов %i минут') = 2007-12-12 12:30:00. Однако названия месяцев и дней недели на русском языке функция STR_TO_DATE() обрабатывает некорректно.

• GET_FORMAT(<DATE, TIME или DATETIME>,<'EUR', 'ISO', 'JIS', 'USA' или 'INTERNAL'>).

Функция GET_FORMAT() возвращает строку формата даты и/или времени, которую затем можно использовать в функции DATE_FORMAT(). Первый аргумент функции указывает, какой формат нужно получить: формат даты, времени или даты и времени. Второй аргумент задает стандарт, которому соответствует возвращаемый формат. Например, функция GET_FORMAT(DATETIME,'EUR') возвращает значение %Y-%m-%d %H.%i.%s».

• MAKEDATE(<Номер года>,<Номер дня в году>).

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

• MAKETIME(<Часы>,<Минуты>,<Секунды>).

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

• FROM_DAYS(<Количество дней>).

Функция FROM_DAYS() получает в качестве аргумента количество дней от Р. Х. и возвращает дату, соответствующую этому дню. Например, функция FROM_DAYS(733387) возвращает значение 2007-12-12.

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

Функция TO_DAYS() получает в качестве аргумента дату или дату и время и возвращает количество дней от Р. Х., соответствующее этой дате. Например, функция TO_DAYS('2007-12-12 12:30:00') возвращает значение 733387.

• SEC_TO_TIME(<Количество секунд>).

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

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

Функция TIME_TO_SEC() получает в качестве аргумента время или дату и время и возвращает количество секунд, соответствующее времени (дата при этом игнорируется). Например, функция TIME_TO_SEC('2007-12-12 12:30:00') возвращает значение 45 000.

• FROM_UNIXTIME(<Unix-время>[,'<Формат>']).

1 ... 24 25 26 27 28 29 30 31 32 ... 50
На этом сайте Вы можете читать книги онлайн бесплатно русская версия MySQL 5.0. Библиотека программиста - Виктор Гольцман.

Оставить комментарий