在BQ中使用标准SQL-作为任务的一部分,我要搜索在前一天的下午2点到当前的下午2点之间创建的记录
我找到了
SELECT DATETIME_SUB(DATETIME_TRUNC(CURRENT_DATETIME(), DAY), INTERVAL 10 hour)
昨天下午2点给我
选择DATETIME_ADD(DATETIME_TRUNC(CURRENT_DATETIME(),DAY),间隔14小时)
Gives me 2pm today
所以,我认为我可以在查询中使用它
Select * from
TableA
where CreatedDate Between
DATETIME_SUB(DATETIME_TRUNC(CURRENT_DATETIME(), DAY), INTERVAL 10 hour) and DATETIME_ADD(DATETIME_TRUNC(CURRENT_DATETIME(), DAY), INTERVAL 14 hour)
但是我得到以下内容
对于参数类型,运算符BETWEEN没有匹配的签名: TIMESTAMP,DATETIME,DATETIME。支持的签名:(任意)之间 (任何)和(任何)
我要去哪里错了?
答案 0 :(得分:2)
您的问题是CreatedDate
是TIMESTAMP
,您需要转换为DATETIME
可能是:
其中DATETIME(CreatedDate)在...之间...
但是您可以轻松地为TIMESTAMP编写自己的语句
选择timestamp_sub(timestamp_trunc(current_timestamp(), DAY),间隔10小时)