检查两个日期字段是否恰好有一个月差距(同一日期)的逻辑,即2月28日和3月28日

问题描述 投票:0回答:1

背景:

我想检查字段B的日期是否比字段A的日期早一个月。但是,一个月的定义是:字段B日期与字段A日期的日期完全相同。

表格示例:

日期_a 日期_b 旗帜
2024-01-05 2024-02-04 错误
2024-01-05 2024-02-05 正确

我失败的试用:

...

CASE WHEN DATE_DIFF(date_b, date_a, MONTH) = 1 THEN TRUE ELSE FALSE END AS flag

...

但是,该逻辑仅考虑月份,而不考虑日期本身。

对此有什么建议吗?谢谢!

date google-bigquery
1个回答
0
投票

可以使用

EXTRACT
函数从日期中获取日期并进行比较:

CASE 
  WHEN 
    DATE_DIFF(date_b, date_a, MONTH) = 1 
    AND EXTRACT(DAY FROM date_a) = EXTRACT(DAY FROM date_b)
  THEN TRUE 
  ELSE FALSE
END AS flag
© www.soinside.com 2019 - 2024. All rights reserved.