Перейти к содержимому
Последнее обновление

NANOSECONDS_SUB

Описание​

Вычитает заданное количество наносекунд из значения TIMESTAMP_NS, сохраняя наносекундную точность.

Синтаксис​

NANOSECONDS_SUB(<timestamp_ns>, <delta>)

Параметры​

ПараметрОписание
<timestamp_ns>Исходное значение типа TIMESTAMP_NS.
<delta>Количество наносекунд для вычитания, тип — BIGINT. При отрицательном значении наносекунды прибавляются.

Возвращаемое значение​

Возвращает TIMESTAMP_NS. Возвращает NULL, если хотя бы один аргумент равен NULL. Сообщает об ошибке, если результат выходит за пределы диапазона TIMESTAMP_NS.

Пример​

SELECT NANOSECONDS_SUB(
CAST('1970-01-01 00:00:00.000000000' AS TIMESTAMP_NS), 1
) AS result;
+-------------------------------+
| result |
+-------------------------------+
| 1969-12-31 23:59:59.999999999 |
+-------------------------------+

При отрицательном значении delta наносекунды прибавляются:

SELECT NANOSECONDS_SUB(
CAST('1969-12-31 23:59:59.999999999' AS TIMESTAMP_NS), -1
) AS result;
+-------------------------------+
| result |
+-------------------------------+
| 1970-01-01 00:00:00.000000000 |
+-------------------------------+
SELECT NANOSECONDS_SUB(CAST(NULL AS TIMESTAMP_NS), 1) AS result;
+--------+
| result |
+--------+
| NULL |
+--------+