运算符大查询标准 SQL 之间



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

我发现

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

选择DATETIME_ADD(DATETIME_TRUNC(CURRENT_DATETIME((,天(,间隔 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 没有匹配的签名: 时间戳、日期时间、日期时间。支持的签名:(任意(之间 (任意(和(任何(

我哪里出错了?

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

它可以像:

其中日期时间(创建日期(之间...

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

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

最新更新