【发布时间】:2019-02-24 05:22:32
【问题描述】:
我正在尝试构建一个简单的TIMESTAMP_AGO SQL UDF。该函数是CURRENT_TIMESTAMP 和TIMESTAMP_SUB 的简单包装器。
我想叫它,带签名:
SELECT TIMESTAMP_AGO(24, 'HOUR');
或者,甚至:
SELECT TIMESTAMP_AGO(24 HOUR);
但是 BigQuery 似乎不喜欢 INTERVAL 的 date_part 作为变量,所以它失败了。我试过分离论点:
CREATE TEMP FUNCTION TIMESTAMP_AGO(_interval INT64, _date_part STRING) AS ((
SELECT TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL _interval _date_part)
));
并且,尝试传递一个 INTERVAL :
CREATE TEMP FUNCTION TIMESTAMP_AGO(_interval INTERVAL) AS ((
SELECT TIMESTAMP_SUB(CURRENT_TIMESTAMP(), _interval)
));
-
INTERVAL可以这样传递吗? - 或者,是否可以传递动态
date_part? - 如果没有这些,是否可以使用外部 UDF (JS)?
【问题讨论】:
标签: google-bigquery