From a21f1840580ed4e911406135b742a58442965cf7 Mon Sep 17 00:00:00 2001 From: Adrian Mastronardi <7809331+AdrianMastronardi@users.noreply.github.com> Date: Tue, 28 Jan 2025 19:40:05 -0500 Subject: [PATCH] fix(issue #31927): TimeGrain.WEEK_STARTING_MONDAY (#32015) --- superset/db_engine_specs/sqlite.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/superset/db_engine_specs/sqlite.py b/superset/db_engine_specs/sqlite.py index dce21dc515cdd..50451e9bf5230 100644 --- a/superset/db_engine_specs/sqlite.py +++ b/superset/db_engine_specs/sqlite.py @@ -88,12 +88,10 @@ class SqliteEngineSpec(BaseEngineSpec): TimeGrain.YEAR: "DATETIME({col}, 'start of year')", TimeGrain.WEEK_ENDING_SATURDAY: "DATETIME({col}, 'start of day', 'weekday 6')", TimeGrain.WEEK_ENDING_SUNDAY: "DATETIME({col}, 'start of day', 'weekday 0')", - TimeGrain.WEEK_STARTING_SUNDAY: ( - "DATETIME({col}, 'start of day', 'weekday 0', '-7 days')" - ), - TimeGrain.WEEK_STARTING_MONDAY: ( - "DATETIME({col}, 'start of day', 'weekday 1', '-7 days')" - ), + TimeGrain.WEEK_STARTING_SUNDAY: "DATETIME({col}, 'start of day', \ + -strftime('%w', {col}) || ' days')", + TimeGrain.WEEK_STARTING_MONDAY: "DATETIME({col}, 'start of day', '-' || \ + ((strftime('%w', {col}) + 6) % 7) || ' days')", } # not sure why these are different _time_grain_expressions.update(