2011-02-07 40 views
0

這與Teradata中的Informix defining an INTERVAL with a parameter幾乎相同。作爲時間間隔的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 ':'

有沒有辦法解決這個問題?

回答

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)); 
)