运算符之间的大查询标准SQL

时间:2018-09-11 11:35:17

标签: google-bigquery standard-sql

在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。支持的签名:(任意)之间   (任何)和(任何)

我要去哪里错了?

1 个答案:

答案 0 :(得分:2)

您的问题是CreatedDateTIMESTAMP,您需要转换为DATETIME

可能是:

  

其中DATETIME(CreatedDate)在...之间...

但是您可以轻松地为TIMESTAMP编写自己的语句

  

选择timestamp_sub(timestamp_trunc(current_timestamp(),   DAY),间隔10小时)

相关问题