在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 没有匹配的签名: 时间戳、日期时间、日期时间。支持的签名:(任意(之间 (任意(和(任何(
我哪里出错了?
您的问题是CreatedDate
TIMESTAMP
,您需要转换为DATETIME
它可以像:
其中日期时间(创建日期(之间...
但是您可以轻松地为 TIMESTAMP 编写自己的语句
选择 timestamp_sub(timestamp_trunc(current_timestamp(( , 日(,间隔 10 小时(