【问题标题】:Teradata macro parameter as time intervalTeradata 宏参数作为时间间隔
【发布时间】:2011-06-23 00:01:39
【问题描述】:

这与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 ':'

有没有办法解决这个问题?

【问题讨论】:

    标签: sql teradata


    【解决方案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));
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-08
      • 2020-03-01
      • 2012-09-18
      • 1970-01-01
      • 2018-03-07
      • 1970-01-01
      • 2022-07-20
      • 1970-01-01
      相关资源
      最近更新 更多