Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

MySQL. Библиотека профессионала - Аткинсон Л

..pdf
Скачиваний:
165
Добавлен:
24.05.2014
Размер:
10.41 Mб
Скачать

Глава Встроенные функции

INTERVAL значение тип)

Эта функция вычитает значение времени из значения даты. Способ ее использо вания такой же, как и у функции DATE_ADD Аналогичную операцию реализует опе ратор

Эта функция возвращает название дня, соответствующего заданной дате (лис тинг

Эта функция возвращает номер дня месяца, соответствующий заданной дате (листинг 12.101).

Эта функция возвращает номер дня недели, соответствующий заданной дате (листинг Первым днем недели считается воскресенье.

Функции работы с датой и временем

Эта функция возвращает номер дня с начала года (листинг 12.103). Первым днем считается 1 января.

FROM дата)

Эта функция извлекает иззначения даты значение указанного типа (листинг 12.104). Названия типов были перечислены в табл. 12.1.

Эта функция вычисляет дату по количеству дней, прошедших с начала летоисчис ления (листинг 12.105). Правда, даты до 1582 г. определяются неправильно, посколь ку MySQL не учитывает изменения, связанные с появлением григорианского кален даря. Обратное преобразование выполняет функция TO_DAYS

Глава Встроенные функции

Эта функция вычисляет дату по количеству секунд, прошедших с начала эпохи UNIX (1 января Необязательный аргумент задает формат отображаемой строки. Коды формата были перечислены в табл. 12.2.

Функция учитывает время по Гринвичу. Например, в листин ге 12.106 результат получен в системе, находящейся в тихоокеанском часовом поясе (разница по Гринвичу — минус 8

Эта функция возвращает номер часа, соответствующий заданному времени (листинг12.107).

Функции работы с датой и временем

Эта функция возвращает число минут, соответствующее заданному времени (листинг 12.108).

Эта функция возвращает номер месяца, соответствующий заданной дате (листинг 12.109).

Эта функция возвращает название месяца, соответствующее заданной дате (листинг

Глава Встроенные функции

NOW()

Эта функция определяет текущие дату и время. Формат возвращаемого значения соответствует контексту (листинг 12.111).

месяцы)

Эта функция прибавляет указанное число месяцев к заданному периоду, который собой обозначение номера месяца конкретного года. Пример, в листинге 12.112, говорит о том, что через 15 месяцев после января 1970 г. будет

апрель 1971 г.

Эта функция определяет разницу в месяцах между двумя периодами (листинг Период — это номер месяца конкретногогода.

Функции работы с датой и временем

Эта

функция определяет квартал года, соотве тствующий заданной дате

(листинг

К первому кварталу относятся первые три месяца года.

Эта функция возвращает число

соответствующее заданному времени

(листинг

 

Эта функция вычисляет время по указанному количеству секунд (листинг 12.116). Значение времени не обязательно находится в пределах суток. Так, если число секунд будет превышать 86400, то количество часов окажется большим, чем 24. Функция выполняет обратное преобразование.

198 Глава 12. Встроенные функции

INTERVAL значение тип)

Этосинонимфункции DATE_SUB

ЭтосинонимфункцииNOW

(время, формат)

Эта функция возвращает значение времени, отформатированное в соответствии с заданной спецификацией. Допустимые коды формата были перечислены в табл. 12.2. В листинге значение времени выдается в 12 часовом формате.

mysql>

SELECT

 

I

 

 

|

I

11:45:01

|

1

row

in set (0.00

sec)

Эта функция преобразует заданное значение времени в количество секунд (листинг Функция SEC_TO_TIME выполняет обратное преобразование.

 

SELECT

I

|

I

5025 I

1 row in set (0.00 sec)

Эта функция вычисляет количество дней, прошедших с начала летоисчисления до указанной даты (листинг 12.119). Даты до определяются неправильно, по скольку MySQL не учитывает изменения, связанные с появлением григорианского ка лендаря. Обратное преобразование выполняет функция

Функции работы с датой и временем

Спомощьюэтой функцииможнонаходитьчислодней междудвумя датами. результатом выраженияTO_DAYS ("2001 09 01") TO_DAYS ("2001 02 01") будет212.

SELECT

I |

I I

1 row in set (0.00 sec)

Эта функция возвращает значение текущего времени в виде метки времени UNIX (листинг 12.120), т.е. количества секунд, прошедших с начала (1 января 1970 среднее время по Если указан аргумент, функция вернет метку, со ответствующую заданному значению даты/времени.

SELECT

I |

I 987812906 |

1 row in set (0.00 sec)

Эта функция возвращает номер недели, соответствующий заданной дате (листинг 12.121). Нумерация ведется от первой недели года. По умолчанию первым днем недели считается воскресенье, но если второй аргумент равен то первым днем будетсчитатьсяпонедельник.

 

SELECT

 

I

0)

I

I

22

|

1 row in set (0 . 00 sec)

200 Глава Встроенные функции

Эта функция возвращает номер дня недели, соответствующий заданной дате. По недельник считается днем номер 0. показанный в листинге 12.122, говорит о том, что 6 июня 1970 г. пришлось на субботу.

Эта функция возвращает номер года, соответствующий заданной дате (листинг 12.123).

[,

Эта функция возвращает значение, содержащее номер года и номер недели года, соответствующие заданной дате. Второй аргумент определяет день начала недели: воскресенье (0) или понедельник (1). Пример, показанный влистинге 12.124, говорит о том, что & июня 1970 г. пришлось на 22 юнеделю года.

Прочие функции 201

Прочие функции

Описанные ниже функции не попадают ни в одну из вышеперечисленных категорий.

Эта функция определяет количество единичных битов в двоичном представлении заданного целого числа (листинг 12.125).

Эта функция возвращает первый (самый левый) элемент списка, не равный NULL (листинг 12.126). Если все элементы равны NULL, возвращается NULL.

Эта функция возвращает номер позиции в списке, где проверяемое значение больше предыдущего элемента, но меньше следующего. Элементы списка должны быть отсортированы по возрастанию (при сортировке строк учитывается регистр). Нумерация элементов начинается с единицы.

Пример, показанный в листинге 12.127, говорит о том, что число 9 больше, чем элемент номер 5 (число 7), но меньше, чем элемент номер 6 (число 11).