背景:
我想检查字段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
...
但是,该逻辑仅考虑月份,而不考虑日期本身。
对此有什么建议吗?谢谢!
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