Параметр макроса Teradata как интервал времени - PullRequest
0 голосов
/ 07 февраля 2011

Это почти та же проблема, что и Informix, определяющий ИНТЕРВАЛ с параметром , но в Teradata.

Я создаю макрос, который принимает строку в формате чч: мм: сс для использования в качестве интервала.

Макрос хочет что-то сделать с отметкой времени в прошлом чч: мм: сс.

Вот базовый sql

CREATE MACRO TEST_MACRO (
    HHMMSS CHAR(8)
)
AS
(
SELECT 
    CAST(CURRENT_TIME AS TIMESTAMP(0)),
    CAST(CURRENT_TIME - INTERVAL :HHMMSS HOUR TO SECOND AS TIMESTAMP(0))
)

Я получаю ошибку Failed 3707: Syntax error, expected something like a string or a Unicode character literal between the 'INTERVAL' keyword and ':'.

Есть ли способ обойти это?

1 Ответ

1 голос
/ 08 февраля 2011

Понял.

CREATE MACRO TEST_MACRO (
    HHMMSS CHAR(8)
)
AS
(
SELECT 
    CAST(CURRENT_TIME AS TIMESTAMP(0)),
    CAST(CURRENT_TIME - CAST(:HHMMSS AS INTERVAL HOUR TO SECOND) AS TIMESTAMP(0));
)
...