首页 文章

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

提问于
浏览
0

在BQ中使用标准SQL - 作为任务的一部分,我想搜索在当天下午2点和当天下午2点之间创建的记录

我已经找到

SELECT DATETIME_SUB(DATETIME_TRUNC(CURRENT_DATETIME(), DAY), INTERVAL 10 hour) 昨天下午2点给我

SELECT DATETIME_ADD(DATETIME_TRUNC(CURRENT_DATETIME(),DAY),INTERVAL 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 . 支持的签名:(ANY)BETWEEN(ANY)AND(ANY)

我哪里错了?

1 回答

  • 2

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

    它可能像:

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

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

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

相关问题