Функции для работы с датой и временем
Функции даты и времени принимают в качестве входных значений дату и время и возвращают либо строковые, числовые значения, либо значения в формате даты и времени. При этом нужно учитывать, что в SQL Server время считается компонентом типа данных datetime. Многие функции даты и времени имеют параметр, обычно обозначающий единицы измерения времени, например, "год", "месяц", "минута".
GETDATE( ) – возвращает текущее системное время;
ISDATE(expression) – проверяет правильность выражения на соответствие одному из возможных форматов ввода даты. Если символьное выражение может быть правильно преобразовано в тип данных datetime, то возвращается 1, в противном случае – 0. Данная функция используется для предварительной проверки введенной пользователем строки на правильность формата.
DAY, MONTH, YEAR – соответственно возвращают число, месяц, год из указанной даты.
DATEADD(datepart, number, date) – добавляет к дате указанное значение дней, месяцев, часов и т. д. Первый аргумент определяет тип значения, которое необходимо добавить (аргумент принимает фиксированный набор значений); второй аргумент содержит количество единиц, которое нужно добавить к выбранному значению; третий аргумент содержит значение типа данных datetime.
DATEDIFF(datepart, startdate, enddate) – возвращает разницу между указанными частями двух дат. Например, можно подсчитать количество дней, прошедших между двумя датами. Форматы для обозначения частей дат соответствуют форматам для функции DATEADD.
В таблице представлены функции даты и времени Transact-SQL:
Рассмотрим примеры использования функций для работы с датой и временем.
(используются ограниченные идентификаторы, так как в качестве имен возвращаемых столбцов взяты зарезервированные слова).
Простейший способ получить только дату, «обрезав» время, - использовать несколько функций:
Примечание. В SQL Server нет типа данных только для даты, однако многим приложениям он нужен. Поэтому рекомендуют «обрезать» время и оставлять только дату с помощью триггера, срабатывающего при занесении соответствующих данных.
Кроме приведенных встроенных функций, имеются также много встроенных функций, предназначенных для решения административных задач (часть из них использовалась в лабораторной работе 3).
1.3. Пользовательские функции MS SQL Server 2005
Несмотря на то, что в SQL Server имеется много встроенных функций, пользователь может создавать свои собственные – пользовательские функции, содержащие часто используемый код. Рассмотрим создание пользовательских функций двух типов:
скалярные функции – возвращают скалярные значения;
табличные функции – возвращают результат в виде таблицы, в свою очередь, делятся на внедренные (функции Inline) и табличные функции с множеством инструкций (функции Multi-statement).
Tабличные функции подчиняются тем же правилам, что и скалярные функции, но возвращают результат в виде таблицы. Поэтому они в основном используются в предложении FROM инструкции SELECT, и их можно соединять с другими таблицами и представлениями. Данные функции используют табличные переменные – особый тип переменных, служащий для временного хранения набора строк, возвращаемых как результат работы табличной функции.
1.3.1. Cкалярные функции
Cкалярные функции принимают 0 или несколько входных параметров и возвращают одно скалярное значение. Для создания функции используется инструкция CREATEFUNCTION, имеющая следующий общий синтаксис:
CREATE FUNCTION [имя_схемы.] имя_функции
( [ { @имя_параметра [ AS ] [имя_схемы.] тип_данных_параметра
[ = значение_параметра_по_умолчанию ] }
[, …n] ] )
RETURNS тип_возвращаемых_данных
[ WITH <function_option> [, …n] ]
[ AS ]
BEGIN
тело_функции
RETURN скалярное_выражение
END [ ; ]
<function_option>::=
{ [ENCRYPTION] | [SCHEMABINDING] | [EXECUTE_AS_Clause] }
Приведенные элементы синтаксиса имеют следующее назначение.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.