Книга: Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
Выражения в качестве операндов
Выражения в качестве операндов
Операндом при увеличении или уменьшении значения TIMESTAMP, TIME, DATE или DATE в диалекте 1 может быть константа или выражение. Выражение может быть особенно полезным в ваших приложениях, когда вам надо увеличить или уменьшить значение в секундах, минутах, часах или, например, требуется половина дня, а не целое количество дней.
Диалект 3 использует правило SQL-92 для деления целого на целое: результатом всегда будет целое, округленное при необходимости в меньшую сторону. При использовании выражений в диалекте 3 убедитесь, что один из операндов является действительным числом с достаточным количеством десятичных знаков, чтобы избежать возможной арифметической ошибки или потери точности результата при выполнении целочисленного деления SQL-92.
В табл. 10.8 показаны некоторые примеры.
Таблица 10.8. Примеры использования выражений в качестве операндов
Вводимый операнд n |
Сложение или вычитание |
Альтернатива |
В секундах |
n/86400.0 |
(n*1,0)/(60* 60*24) |
В минутах |
n/1440.0 |
(n*1.0)/(60*24) |
В часах |
n/24.0 |
Зависит от желаемого результата. Например, если n=3, а делитель для половины дня - 2, результат будет 1, а не 1.5 |
Половина дня |
n/2 |
То же |
Поскольку годы, месяцы, кварталы не являются константами, нужны более сложные алгоритмы для их использования в операциях даты/времени. Возможно, вам следует для этих целей посмотреть функции, определенные пользователем (UDF), которые вы сможете использовать в качестве выражений в операндах.
- Скобочные выражения
- 11.3. Выражения
- 4.7.3. Левосторонние выражения
- A7.17. Выражения присваивания
- Индексы по выражениям
- Выражения в значениях по умолчанию для доменов
- Выражения в EXCEPTION
- 6. Выражения реляционной алгебры
- 3.13.7. Рекурсия в регулярных выражениях
- 1. Качественный микрофон
- 6. Лекция: Обработка текстов. Регулярные выражения. Unicode.
- Применение лямбда-выражения в качестве задачи