MySQL. Библиотека профессионала - Аткинсон Л
..pdfГлава Встроенные функции
счетчик)
Эта функция возвращает строку, которая состоит из заданной строки, повторяю щейся указанное число раз (листинг 12.80).
новая подстрока)
Эта функция меняет в исходной строке каждое вхождение старой подстроки на новуюподстроку(листинг12.81).
Эта функция меняет порядок символов в строке на обратный (листинг 12.82).
183
счетчик)
Эта функция возвращает указанное число символов строки, считая с ее правого конца (листинг 12.83). Функция LEFT работает с противоположного конца.
(строка, длина, заполнитель)
Эта функция дополняет строку до указанной длины, вставляя справа строку заполнитель (листинг 12.84). Функция LPAD дополняет строку слева.
Эта функция удаляет из строки конечные пробелы. В листинге 12.85 строка очи щается от хвостовых пробелов, после чего конкатенируется с другой строкой.
Глава Встроенные функции
Эта функция возвращает основанный на особенностях звучания слов ки. Данный алгоритм описан Дональдом Кнутом в третьем томе книги "Искусство граммирования". Хэш код состоит из четырех символов и начинается с буквы. В листин ге 12.86 показано получение двух слов, близких по звучанию.
Эта функция возвращает строку, состоящую из указанного количества пробелов (листинг 12.87). То же самое можно сделать с помощью функции REPEAT
Строки 185
Эта функция сравнивает две строки, возвращая 0, если строкиравны, 1, если пер вая строка предшествует второй по алфавиту, и 1, если вторая строка предшествует первой (листинг 12.88).
SUBSTRING(CTpOKa FROM позиция [FOR
Эта функция извлекает строки подстроку заданной длины, начиная с указанной позиции. В данной версии аргументы разделяются ключевыми словами, а не запяты ми, что соответствует стандарту ANSI.
SUBSTRING(строка,
Эта функция извлекает из строки подстроку заданной длины, начиная с указанной позиции (листинг 12.89). Нумерация символов строки начинается с единицы. Если длина подстроки не задана, возвращается остаток строки.
разделитель, счетчик)
Эта функция возвращает подстроку, которая содержит заданное количество раз делителей. Если счетчик является положительным числом, подстрока извлекается слева, в противном случае — справа. Влистинге 12.90 функция возвращает первые два элемента списка, компоненты которого разделены запятыми.
Глава Встроенные функции
TRIM| LEADING \ TRAILING] заполнитель FROM] строка)
Эта функция удаляет из строки символы заполнители. По умолчанию удаляются начальные и конечные пробелы (листинг 12.91).
Эта функция возвращает строку, все символы которой переведены в верхний ре гистр (листинг Обратное преобразование осуществляется с помощью функции
Функции работы с датой и временем
Это синоним функции UCASE
Функцииработысдатойивременем
Описанные ниже функции работают со значениями даты/времени. Будучи извле ченными из базы данных, эти значения приводятся к целочисленному или строковому типу, в зависимости от контекста. Например, функция NOW по умолчанию возвращает
строку вида 12:59:58", но может вернуть и число вида |
если |
по контексту требуется целое число. |
|
Любая функция, ожидающая значение даты или времени, понимает значение, в котором указана как дата, так и время.
INTERVAL значение тип)
Это синоним функции DATE_ADD
Эта функция возвращает значение текущей даты (листинг 12.93). Она эквивалент функцииCURRENT_DATE.
CURRENT_DATE
Эта функция возвращает значение текущей даты (листинг 12.94). Она эквивалент на функции CURDATE но не требует скобок.
Глава Встроенные функции
Эта функция возвращает значение текущего времени (листинг 12 .95). эквива лентна функции но не требует скобок.
Эта функция возвращает значение текущих даты и времени (листинг 12.96). Она эквивалентнафункции NOW О но нетребует скобок.
Эта функция возвращает значениетекущего времени (листинг 12.97). Она эквива лентна функции
Функции работы с датой и временем
INTERVAL значение
Эта функция добавляет значение времени к значению даты или времени. Прибав ляемое значение задается после ключевого слова INTERVAL с указанием требуемого типа данных. Возможные типы описаны в табл.
Тип |
Формат |
DAY |
Дни |
DAY_HOUR |
|
DAY_MINUTE
DAY_SECOND
HOUR |
|
Часы |
HOUR |
MINUTE |
|
HOUR |
SECOND |
|
MINUTE |
Минуты |
|
MINUTE |
SECOND |
|
MONTH |
|
Месяцы |
SECOND |
Секунды |
|
YEAR |
|
Годы |
YEAR_MONTH
Прибавить к значению даты интервальное значение позволяет оператор на пример NOW + INTERVAL DAY. Вычестьинтервальноезначениеможно с помощью оператора или функции DATE_SUB Если какая то часть интервального значения пропущена, программа MySQL будет интерпретировать его справа налево и присваи вать пропущенным компонентам 0. Например, спецификация для интервала типа DAY_MINUTE эквивалентна использованию интервала
В листинге вычисляется текущее время и время через две недели.
Глава Встроенные функции
формат)
Эта форматирует даты в соответствии с заданной специфика цией. Строка формата может содержать произвольное число кодов, начинающихся с символа % и обозначающих тот или иной компонент даты. Остальные символы попа дают в возвращаемую строку без изменения.
Код |
Описание |
|
Примеры |
% |
Литеральный символ % |
|
% |
|
Сокращенное название дня недели |
|
|
|
Сокращенное название месяца |
Jan... Dec |
|
|
Номер месяца без ведущего нуля |
12 |
|
|
Номер дня месяца с англ ийским суффиксом |
1st, 2nd, 3rd, 4th, |
|
|
Номер дня месяца с ведущим нулем |
31 |
|
|
Номер дня месяца |
|
|
|
Номер часа в |
формате с ведущим |
|
|
нулем |
|
|
|
Номер часа в 12 часовом |
формате с ведущим |
|
|
нулем |
|
|
|
|
|
01... 12 |
|
Число минут с ведущим нулем |
|
|
% |
Номер дня года с ведущими нулями |
|
|
|
Номер часа в формате без ведущего |
3 |
|
|
нуля |
|
|
1 |
Номер часа в |
формате без ведущего |
12 |
|
нуля |
|
|
|
Название месяца |
|
January. December |
|
Номер месяца с ведущим нулем |
12 |
|
|
Обозначение периода суток |
AM, PM |
|
|
Время в 12 часовом формате |
AM |
Числосекунд |
00 ... 59 |
Функции работы с датой и временем
Код |
Описание |
|
Примеры |
|
Время в |
формате |
|
|
Номер недели года, в котором первым днем |
|
|
|
неделиявляетсяпонедельник |
|
|
|
Номер недели года, в котором первым днем |
|
|
|
недели является воскресенье |
|
|
|
Номер недели года, в котором первым днем |
1. .53 |
|
|
недели является |
понедельник; используется |
|
|
совместно с кодом |
|
|
|
Номер недели года, в котором первым днем |
|
|
|
недели является воскресенье; используется |
|
|
|
вместно с кодом |
|
|
|
Номер дня недели |
|
6 |
|
Название дня недели |
Saturday |
|
|
Год, первым днем которого является |
|
|
|
используется совместно с кодом %v |
|
|
|
Год, первым днем которого является |
0000. |
|
|
используется совместно с кодом |
|
|
Год столетия |
00... 99 |
%Y |
Год |
|
Коды |
%V, и |
работают по тому принципу, чтогод должен начинаться либо |
с воскресенья, либо с понедельника. В соответствии с этой логикой 1 января 1970 г. относилось к 53 й неделе 1969 г.
В листинге 12.99 значение даты января 1970г.) отформатировано так, чтобы отображалось название дня.