Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Подготовка к ПР_2.2.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
944.59 Кб
Скачать

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

В языке SQL имеются три функции, которые возвращают теку­щие дату и время.

- CURRENT_DATE - возвращает текущую дату (тип date).

- CURRENT_TIME(число) - возвращает текущее время (тип time). Целочисленный параметр указывает точность представ­ления секунд. Например, при значении 2 секунды будут пред­ставлены с точностью до сотых (две цифры в дробной части): 12:39:45.27.

- CURRENT_TIMESTAMP(число) - возвращает дату и время (тип timestamp). Например, 2005-06-18 12:39:45.27. Целочислен­ный параметр указывает точность представления секунд.

Обратите внимание, что дата и время, возвращаемые этими функциями, имеют не символьный тип. Если требуется предста­вить их в виде символьных строк, то для этого следует использо­вать функцию преобразования типа cast ().

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

3. Вычисляемые выражения

Вычисляемые выражения строятся из констант (числовых, стро­ковых, логических), функций, имен полей и данных других типов путем соединения их арифметическими, строковыми, логически­ми и другими операторами. В свою очередь, выражения могут быть объединены посредством операторов в более сложные (со­ставные) выражения. Для управления порядком вычисления вы­ражений используются круглые скобки.

Арифметические операторы:

+ сложение;

- вычитание;

* умножение;

/ деление.

Строковый оператор только один - оператор конкатенации или склейки строк (| |). В некоторых реализациях SQL (например, в Microsoft Access) вместо (| |) используется символ (+). Оператор конкатенации приписывает вторую строку к концу первой.

При составлении выражений необходимо следить, чтобы операнды операторов имели допустимые типы.

Например, выражение:

123+'Саша' недопустимо, поскольку арифметический оператор сложения применяется к строковому операнду.

Вычисляемые выражения могут находиться после оператора SELECT, а также в выражениях условий операторов WHERE и HAVING.

Рассмотрим несколько примеров.

1. Пусть таблица Продажи содержит столбцы Тип_товара, Количество и Цена, а нам требуется знать выручку для каждого типа товара. Для этого достаточно в список столбцов после оператора SELECT включить выражение Количество*Цена:

SELECT Тип_товара, Количество, Цена, Количество*Цена AS Итого FROM Продажи;

З десь используется ключевое слово AS (как) для задания псевдо­нима столбца с вычисляемыми данными.

На рис. показаны исходная таблица продажи и результатная таблица запроса.

Если требуется узнать общую выручку от продажи всех товаров, то достаточно применить следующий запрос:

SELECT SUM(Количество*Цена) FROM Продажи;

2. Следующий запрос содержит вычисляемые выражения и в списке столбцов, и в условии оператора WHERE. Он выбирает из таблицы продажи те товары, выручка от продажи которых больше 1000:

SELECT Тип_товара, Количество*Цена AS Итого FROM Продажи

WHERE Количество*Цена > 1000;

Предположим, что требуется получить таблицу, в которой два столбца:

  • Товар, содержащий тип товара и цену;

  • Итого, содержащий выручку.

П оскольку предполагается, что в исходной таблице продажи столбец Тип_товара является символьным (тип char), а столбец цена - числовой, то при объединении (склейке) данных из этих столбцов необходимо выполнить приведение числового типа к символьному с помощью функции cast (). Запрос, выполняю­щий это задание, выглядит так:

SELECT Тип_товара || ' (Цена: ' || CAST(Цена AS CHAR(5)) || ')' AS Товар, Количество*Цена AS Итого FROM Продажи;

Примечание

В Microsoft Access аналогичный запрос будет иметь следующий вид:

SELECT Тип_товара + ' (Цена: ' + CStr(Цена) + ')' AS Товар, Количество*Цена AS Итого FROM Продажи;