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 に答える