删除bigquery中由于日期格式而无法工作的最近31天sql查询

0lvr5msh  于 2021-07-24  发布在  Java
关注(0)|答案(2)|浏览(254)

在bigquery表中,日期的格式如下:
日期
2020-07-15
我´我正在尝试使用此查询删除过去31天:

SELECT
  DISTINCT*
FROM
  `dataset.Raw_.Data`
WHERE
 DATE(Date) <= DATE_SUB(CURRENT_DATE(), INTERVAL 31 DAY)

不幸的是,它没有工作,我相信原因是bigquery表中日期的格式。这是我得到的错误:
参数类型的函数date没有匹配的签名:date。支持的签名:日期(时间戳,[字符串]);日期(datetime);日期(int64,int64,int64)在[6:2]
=>是否有任何方法可以修改sql查询以删除过去31天而不修改表?

5lwkijsr

5lwkijsr1#

如果您将日期存储为字符串,您应该能够 cast() :

WHERE CAST(Date as date) <= DATE_SUB(CURRENT_DATE(), INTERVAL 31 DAY)

如果你已经有约会了,那就没必要了 cast() :

WHERE Date <= DATE_SUB(CURRENT_DATE(), INTERVAL 31 DAY)
qvtsj1bj

qvtsj1bj2#

根据错误消息-您的日期字段已经是日期数据类型,所以您可以使用下面的

SELECT
  DISTINCT *
FROM
  `dataset.Raw_.Data`
WHERE
 Date <= DATE_SUB(CURRENT_DATE(), INTERVAL 31 DAY)

相关问题