2011-02-07 20 views
0

これはInformix defining an INTERVAL with a parameterとほぼ同じ問題ですが、Teradataにあります。時間間隔としてのTeradataマクロパラメータ

間隔として使用する文字列をhh:mm:ss形式で受け付けるマクロを作成しています。

マクロは、過去のhh:mm:ssのタイムスタンプで何かをしたいと考えています。

ここで基本的なSQLは、私は、エラーFailed 3707: Syntax error, expected something like a string or a Unicode character literal between the 'INTERVAL' keyword and ':'を得る

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

です。

方法はありますか?

答えて

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