Добавил:
sora.alai.102@gmail.com Делаю работы на заказ. Какие именно? Пишите. Или регайтесь на бирже, где я работаю: https://vsesdal.com/promo?ref=748568 Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Метод. указания к ЛР № 5

.pdf
Скачиваний:
29
Добавлен:
25.11.2018
Размер:
227.09 Кб
Скачать

Лабораторная работа 5

Функция ДАТАВРЕМЯ

Назначение функции ДАТАВРЕМЯ состоит в конструировании даты по её отдельным компонентам.

В качестве параметров функция принимает целочисленные Год, Месяц, День, Час, Минута и Секунда. Последние три параметра являются необязательными.

Таким образом следующий запрос

ВЫБРАТЬ ДАТАВРЕМЯ(2013, 02, 01)

вернёт нам таблицу с типом поля ДАТА и значением 1 февраля 2013 года:

Значение часов, минут и секунд равно нулю, так как мы их не указали при вызове функции (последние три параметра).

Мы получаем таблицу как бы "из воздуха", не указывая в секции ИЗ источник данных.

Получается, что вовсе необязательно делать запрос к реально существующим таблицам базы данных. Можно конструировать эти таблицы самостоятельно, задавая константные значения полей.

Например, так (поля типа ЧИСЛО):

ВЫБРАТЬ

1,

2,

3

Или так (поля типа СТРОКА):

ВЫБРАТЬ "Привет", ",",

"Мир", "!"

Или вообще вот так (поля разных типов):

ВЫБРАТЬ "Одна секунда до нового тысячелетия!",

ДАТАВРЕМЯ(1999, 12, 31, 23, 59, 59), 1

Функция ГОД

Принимает параметр типа ДАТА. Возвращает год.

ВЫБРАТЬ ГОД(ДАТАВРЕМЯ(2013, 02, 01))

Функция КВАРТАЛ

Принимает параметр типа ДАТА.

Возвращает номер квартала даты (целочисленное значение от 1 до 4).

ВЫБРАТЬ КВАРТАЛ(ДАТАВРЕМЯ(2013, 02, 01))

Функция МЕСЯЦ

Принимает параметр типа ДАТА. Возвращает номер месяца даты (целочисленное значение

от 1 до 12).

ВЫБРАТЬ МЕСЯЦ(ДАТАВРЕМЯ(2013, 02, 01))

Функция ДЕНЬГОДА

Принимает параметр типа ДАТА. Возвращает номер дня в году (целочисленное значение от

1 до 366).

ВЫБРАТЬ ДЕНЬГОДА(ДАТАВРЕМЯ(2013, 02, 01))

Функция ДЕНЬ

Принимает параметр типа ДАТА. Возвращает номер дня в месяце (целочисленное значение

от 1 до 31).

ВЫБРАТЬ ДЕНЬ(ДАТАВРЕМЯ(2013, 02, 01))

Функция НЕДЕЛЯ

Принимает параметр типа ДАТА. Возвращает номер недели в году.

ВЫБРАТЬ

НЕДЕЛЯ(ДАТАВРЕМЯ(2013, 02, 01))

Функция ДЕНЬНЕДЕЛИ

Принимает параметр типа ДАТА. Возвращает номер дня недели (целочисленной значение

от 1 (понедельник) до 7 (воскресенье)).

ВЫБРАТЬ ДЕНЬНЕДЕЛИ(ДАТАВРЕМЯ(2013, 02, 01))

Функция ЧАС

Принимает параметр типа ДАТА. Возвращает час суток (целочисленное значение от 0 до

23).

ВЫБРАТЬ ЧАС(ДАТАВРЕМЯ(2013, 02, 01, 20, 38, 59))

Функция МИНУТА

Принимает параметр типа ДАТА. Возвращает минуты часа (целочисленное значение от 0

до 59).

ВЫБРАТЬ МИНУТА(ДАТАВРЕМЯ(2013, 02, 01, 20, 38, 59))

Функция СЕКУНДА

Принимает параметр типа ДАТА. Возвращает секунды минуты (целочисленное значение от

0 до 59).

ВЫБРАТЬ СЕКУНДА(ДАТАВРЕМЯ(2013, 02, 01, 20, 38, 59))

Функция НАЧАЛОПЕРИОДА

Принимает параметр типа ДАТА и тип периода (одно из значений МИНУТА, ЧАС, ДЕНЬ, НЕДЕЛЯ, МЕСЯЦ, КВАРТАЛ, ГОД, ДЕКАДА, ПОЛУГОДИЕ).

Функция предназначена для получения даты начала периода по дате, принадлежащей

этому периоду.

ВЫБРАТЬ НАЧАЛОПЕРИОДА(ДАТАВРЕМЯ(2013, 02, 01), ГОД)

Поле1

01.01.2013 0:00:00

ВЫБРАТЬ

НАЧАЛОПЕРИОДА(ДАТАВРЕМЯ(2013, 02, 01), НЕДЕЛЯ)

Поле1

28.01.2013 0:00:00

Функция КОНЕЦПЕРИОДА

Принимает параметр типа ДАТА и тип периода (одно из значений МИНУТА, ЧАС, ДЕНЬ, НЕДЕЛЯ, МЕСЯЦ, КВАРТАЛ, ГОД, ДЕКАДА, ПОЛУГОДИЕ).

Функция предназначена для получения даты конца периода по дате, принадлежащей этому периоду.

ВЫБРАТЬ КОНЕЦПЕРИОДА(ДАТАВРЕМЯ(2013, 02, 01), ГОД)

ВЫБРАТЬ

КОНЕЦПЕРИОДА(ДАТАВРЕМЯ(2013, 02, 01), НЕДЕЛЯ)

Функция ДОБАВИТЬКДАТЕ

Принимает параметр типа ДАТА, тип увеличения (одно из значений СЕКУНДА, МИНУТА, ЧАС, ДЕНЬ, НЕДЕЛЯ, МЕСЯЦ, КВАРТАЛ, ГОД, ДЕКАДА, ПОЛУГОДИЕ) и величину увеличения (целочисленное значение).

Функция предназначена для прибавления к дате некоторой величины.

ВЫБРАТЬ ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(2013, 02, 01), МЕСЯЦ, 1)

Поле1

01.03.2013 0:00:00

ВЫБРАТЬ ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(2013, 02, 01), КВАРТАЛ, 2)

Функция РАЗНОСТЬДАТ

Принимает два параметра типа ДАТА и третий параметр тип разности (одно из значений СЕКУНДА, МИНУТА, ЧАС, ДЕНЬ, МЕСЯЦ, КВАРТАЛ, ГОД).

Функция предназначена для получения разницы между двумя датами (вторым и первым

параметром).

ВЫБРАТЬ РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2013, 02, 01), ДАТАВРЕМЯ(2014, 02, 01), ГОД)

ВЫБРАТЬ РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2013, 02, 01), ДАТАВРЕМЯ(2014, 02, 01), МЕСЯЦ)

Вфункции можно передавать не только константы, но и поля таблиц

Вфункции можно передавать не только даты, сконструированные при помощи

ДАТАВРЕМЯ, но и свойства объектов, которые мы запрашиваем из базы, имеющие тип

ДАТА.

К примеру, если мы запрашиваем документы и нам известно, что свойство Дата у документа имеет тип ДАТА, это означает, что мы можем использовать его в качестве параметров для функций работающих с датой.

ВЫБРАТЬ Дата,

ГОД(Дата), НАЧАЛОПЕРИОДА(Дата, МЕСЯЦ),

ДАТАВРЕМЯ(1999, 01, 01)

ИЗ

Документ.ЗаказКлиента

Когда мы конструируем дату при помощи функции ДАТАВРЕМЯ, задавая конкретные значения года, месяца и числа, то получаем значение даты, которое жёстко прописано в коде и уже никогда не изменится.

Когда же мы пишем Дата, то в случае выборки из документов это означает, что вместо Дата будут подставляться даты из документов, забитых в базе.

Поэтому даты, заданные первым способом называются константными (то есть постоянными), а вторые нет.

Как вы понимаете, ничто нам не мешает использовать одновременно оба типа дат:

ВЫБРАТЬ Дата,

РАЗНОСТЬДАТ(ДАТАВРЕМЯ(1999, 01, 01), Дата, ДЕНЬ)

ИЗ

Документ.ЗаказКлиента