feat(duckdb)!: Transpile BQ's WEEK based DATE_DIFF
#6507
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Follow up of #6354
BigQuery
BigQuery's
DATE_DIFFhas the following semantics:1.
WEEKis Sunday-based whileISOWEEKis Monday-based; One can also shift to any day throughWEEK(<day>)2. Date part boundaries are respected i.e crossings are counted for
This explains the following result:
DuckDB
In contrast, in DuckDB:
WEEKis Monday basedSolution
This PR attempts to match the semantics by:
a. [BigQuery] Canonicalizing
WEEKtoWEEK(Sunday)at parse timeb. [BigQuery] Adding a new arg in
exp.DateDifffor "date part boundary" semanticsc. [DuckDB] Shifting the week start through
DATE_TRUNCto account for (b)Docs
BQ DATE_DIFF | DuckDB DATE_DIFF