Выражения в качестве операндов

Выражения в качестве операндов

Операндом при увеличении или уменьшении значения 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), которые вы сможете использовать в качестве выражений в операндах.