WEEKOFYEAR is not aligning to ISO-8601, is this correct?


Hi,
I recently utilised the Week of Year function for a date column. I'm unsure if this is incrementing from 0, but the value for the 12th of Feb 2024 returns 6. I would expect it to return 7.
.Can someone confirm if this is intended? It looks to use Sunday as the start of the week in this function.
Best,
Sam
Welcome!
Answers
-
Have a look at using the function Week and pass into it whatever mode fits your needs.
WEEKOFYEAR(date[,mode])
WEEK(date[,mode])
Both do the same thing.
Modes are
0: First day is Sunday, range is 0-53, first week has a Sunday in this year.
1: First day is Monday, range is 0-53, first week has more than 3 days this year.
2: First day is Sunday, range is 1-53, first week has a Sunday in this year.
3: First day is Monday, range is 1-53, first week has more than 3 days this year.
4: First day is Sunday, range is 0-53, first week has more than 3 days this year.
5: First day is Monday, range is 0-53, first week has a Monday in this year.
6: First day is Sunday, range is 1-53, first week has more than 3 days this year.
7: First day is Monday, range is 1-53, first week has a Monday in this year.
0 -
There seems to be an delta between the MagicETL calculation and the Beastmode calculation.
MagicETL Values:
Beastmode Values:
0 -
this probably covers why
1 -
@Samuel. Do you have a default fiscal calendar set for your organization?
0 -
Hey @Garrett_Kohler, no - this setting is not seemingly enabled or used in our org.
0 -
Correct Calculation to Ensure Monday-Sunday Week: (ISO 8601 week numbering system)
WEEKOFYEAR(DATE_ADD('
simple_timestamp'
, INTERVAL -MOD(DAYOFWEEK('simple_timestamp'
) + 5, 7) DAY))Explanation:
DAYOFWEEK(
simple_timestamp)
: Returns a number representing the day of the week (1 = Sunday, 2 = Monday, ..., 7 = Saturday).MOD(DAYOFWEEK(
simple_timestamp) + 5, 7)
:- This operation adjusts the
DAYOFWEEK()
result to account for Monday being the start of the week. DAYOFWEEK()
starts at Sunday (1), but we need the week to start on Monday (2).- The
+5
ensures the calculation moves the day to match the Monday-Sunday week pattern. MOD(..., 7)
ensures the result is within a valid range of days (0-6), correctly moving the date to the previous Monday.
- This operation adjusts the
DATE_ADD(
simple_timestamp, INTERVAL -MOD(DAYOFWEEK(
simple_timestamp) + 5, 7) DAY)
: This subtracts the correct number of days fromsimple_timestamp
to get the previous Monday.WEEKOFYEAR()
: This calculates the correct week number for the adjusted date (the previous Monday).
0
Welcome!
Welcome!
Categories
- All Categories
- 2K Product Ideas
- 2K Ideas Exchange
- 1.6K Connect
- 1.3K Connectors
- 311 Workbench
- 6 Cloud Amplifier
- 9 Federated
- 3.8K Transform
- 659 Datasets
- 116 SQL DataFlows
- 2.2K Magic ETL
- 816 Beast Mode
- 3.3K Visualize
- 2.5K Charting
- 82 App Studio
- 45 Variables
- 776 Automate
- 190 Apps
- 481 APIs & Domo Developer
- 82 Workflows
- 23 Code Engine
- 41 AI and Machine Learning
- 20 AI Chat
- 1 AI Playground
- 2 AI Projects and Models
- 18 Jupyter Workspaces
- 411 Distribute
- 120 Domo Everywhere
- 280 Scheduled Reports
- 11 Software Integrations
- 144 Manage
- 140 Governance & Security
- 8 Domo Community Gallery
- 48 Product Releases
- 12 Domo University
- 5.4K Community Forums
- 41 Getting Started
- 31 Community Member Introductions
- 115 Community Announcements
- 4.8K Archive