使用BigQuery SQL中的DATE_TRUNC函数将日期戳截断到所需的日期单位,并按需要过滤范围,然后将结果放入不同列中进行比较。
例如,比较两列中的日期范围是否重叠:
SELECT col1, col2, col3 FROM my_table WHERE DATE_TRUNC('day', col1) <= DATE_TRUNC('day', '2021-01-31') AND DATE_TRUNC('day', col2) >= DATE_TRUNC('day', '2021-01-01')
这将返回列1、列2和列3,其中列1和列2的日期范围在2021年1月1日至2021年1月31日之间重叠。
请注意,这里使用的是DATE_TRUNC函数,因为过滤器仅比较日期的一部分(即截断日期戳)。这减少了比较日期时间时可能出现的错误。
还可以将过滤器的范围和DATE_TRUNC函数的日期单位更改为适合您的情况。