Опубликован: 02.02.2007 | Доступ: свободный | Студентов: 2374 / 243 | Оценка: 4.10 / 3.86 | Длительность: 26:44:00
Урок 23:

Компоненты языка Transact-SQL

Функции Transact-SQL

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

Нововведением в SQL Server 2000 является возможность создания своих собственных функций, которые называются пользовательскими функциями (user-defined). Их мы рассмотрим в "Пользовательские функции"

Transact-SQL также предоставляет несколько встроенных функций, которые мы и будем рассматривать.

Примечание. В таблицах в этом разделе представлены не все функции. Полный перечень функций доступен в панели Object Browser в папке Common Objects.

Использование функций

Встроенные функции Transact-SQL классифицируются по характеру возвращаемого ими результата: они могут быть либо детерминированными (deterministic), либо недетерминированными (non-deterministic). Детерминированная функция, получая одни и те же значения данных, которыми будет оперировать, всегда будет возвращать одинаковый результат: SQRT(9) всегда возвращает 3, следовательно, функция SQRT детерминированная. Недетерминированная функция, такая как RAND, наоборот, при каждом обращении всегда возвращает различные значения.

В Transact-SQL функции могут использоваться в самых различных случаях. В столбцах со значениями по умолчанию, в вычисляемых столбцах в таблицах или представлениях, в условии отбора в фразе WHERE и т. д. Тем не менее, детерминизм функции определяет, может ли она использоваться в качестве индекса. Индекс всегда должен возвращать согласующиеся результаты, и только детерминированные функции могут использоваться в индексах.

Функции даты и времени

Функции даты и времени принимают в качестве входных значений дату и время и возвращают либо строковые, числовые значения, либо значения в формате даты и времени. (Помните, что в SQL Server, время считается компонентом типа данных datetime). Параметр единицы, фигурирующий во многих функциях, обычно обозначает единицы измерения времени, например такие, как "год" или "минута". В таблице 24.9 представлены функции даты и времени Transact-SQL.

Таблица 24.9. Функции даты и времени.
Функция Параметры Операция
DATEADD единицы, число, дата Рассчитывает новую дату, добавляя к существующей указанное число единиц (дней, месяцев, часов и т.д.).
DATEDIFF единицы, нач_дата, кон_дата Возвращает количество единиц времени, между двумя указанными датами.
DATENAME единицы, дата Возвращает имя указанной единицы времени даты в виде строки.
DATEPART единицы, дата Возвращает имя указанной единицы времени даты в виде числа.
DAY дата Возвращает день для указанной даты в виде числа.
GETDATE Возвращает текущее системное время и дату.
MONTH дата Возвращает месяц для указанной даты в виде числа.
YEAR дата Возвращает год для указанной даты в виде числа.

Используйте функции даты

  1. Для открытия нового окна Query (Запрос), нажмите в панели инструментов анализатора запросов Query Analyzer кнопку New Query (Новый запрос).Query Analyzer откроет пустое окно Query (Запрос).
  2. В панели инструментов анализатора запросов Query Analyzer нажмите кнопку Load Script (Загрузить сценарий).Query Analyzer отобразит диалоговое окно Open Query File (Открытие файла сценария).

  3. Выберите файл с именем DateTime и нажмите кнопку Open (Открыть). Query Analyzer загрузит сценарий в окно Query (Запрос).

  4. Для выполнения запроса в панели инструментов анализатора запросов Query Analyzer нажмите кнопку Execute Query (Выполнить запрос).Query Analyzer отобразит результаты в панели сетки Grids Pane.

  5. Закройте окно Query (Запрос).
Инна Грушецкая
Инна Грушецкая
Сергей Чесноков
Сергей Чесноков