0

这几乎与Informix 使用参数定义 INTERVAL 的问题相同,但在 Teradata 中。

我正在创建一个宏,它接受形式为 hh:mm:ss 的字符串用作间隔。

宏想要对过去 hh:mm:ss 的时间戳做一些事情。

这是基本的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 ':'

有没有解决的办法?

4

1 回答 1

1

知道了。

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));
)
于 2011-02-07T21:03:06.360 回答