Skip to main content Skip to complementary content

weekstart - script and chart function

This function returns a value corresponding to a timestamp of the first millisecond of the first day of the calendar week containing date. The default output format is the DateFormat set in the script.


WeekStart(timestamp [, period_no [, first_week_day ]])

Return data type: dual

The weekstart() function determines which week the date falls into. It then returns a timestamp, in date format, for the first millisecond of that week. The first day of the week is determined by the FirstWeekDay environment variable. However, this can be superseded by the first_week_day argument in the weekstart() function.

Argument Description
timestamp The date or timestamp to evaluate.
period_no shift is an integer, where the value 0 indicates the week which contains date. Negative values in shift indicate preceding weeks and positive values indicate succeeding weeks.

Specifies the day on which the week starts. If omitted, the value of variable FirstWeekDay is used.

The possible values first_week_day are 0 for Monday, 1 for Tuesday, 2 for Wednesday, 3 for Thursday, 4 for Friday, 5 for Saturday, and 6 for Sunday.

For more information about the system variable, see FirstWeekDay.

When to use it

The weekstart() function is commonly used as part of an expression when the user would like the calculation to use the fraction of the week that has elapsed thus far. For example, it could be used if a user would like to calculate the total wages earned by employees in the week so far.

The following examples assume:

SET FirstWeekDay=0;
Function examples
Example Result
weekstart('01/12/2013') Returns 01/07/2013.
weekstart('01/12/2013', -1 ) Returns 11/31/2012.
weekstart('01/12/2013', 0, 1) Returns 01/08/2013.

Regional settings

Unless otherwise specified, the examples in this topic use the following date format: MM/DD/YYYY. The date format is specified in the SET DateFormat statement in your data load script. The default date formatting may be different in your system, due to your regional settings and other factors. You can change the formats in the examples below to suit your requirements. Or you can change the formats in your load script to match these examples.

Default regional settings in apps are based on the regional system settings of the computer or server where Qlik Sense is installed. If the Qlik Sense server you are accessing is set to Sweden, the Data load editor will use Swedish regional settings for dates, time, and currency. These regional format settings are not related to the language displayed in the Qlik Sense user interface. Qlik Sense will be displayed in the same language as the browser you are using.


If you want ISO settings for weeks and week numbers, make sure to have the following in the script:

Set DateFormat ='YYYY-MM-DD'; Set FirstWeekDay =0; // Monday as first week day Set BrokenWeeks =0; //(use unbroken weeks) Set ReferenceDay =4; // Jan 4th is always in week 1

If you want US settings, make sure to have the following in the script:

Set DateFormat ='M/D/YYYY'; Set FirstWeekDay =6; // Sunday as first week day Set BrokenWeeks =1; //(use broken weeks) Set ReferenceDay =1; // Jan 1st is always in week 1

The examples above results in the following from the weekstart() function:

Example of Weekstart function
Date ISO week start US week start
Sat 2020 Dec 26 2020-12-21 12/20/2020
Sun 2020 Dec 27 2020-12-21 12/27/2020
Mon 2020 Dec 28 2020-12-28 12/27/2020
Tue 2020 Dec 29 2020-12-28 12/27/2020
Wed 2020 Dec 30 2020-12-28 12/27/2020
Thu 2020 Dec 31 2020-12-28 12/27/2020
Fri 2021 Jan 1 2020-12-28 12/27/2020
Sat 2021 Jan 2 2020-12-28 12/27/2020
Sun 2021 Jan 3 2020-12-28 1/3/2021
Mon 2021 Jan 4 2021-01-04 1/3/2021
Tue 2021 Jan 5 2021-01-04 1/3/2021
Information noteThe week starts are on Mondays in the ISO column, and on Sundays in the US column.

Example 1 – No additional arguments

Example 2 – period_no

Example 3 – first_week_day

Example 4 – Chart object example

Example 5 – Scenario

Did this page help you?

If you find any issues with this page or its content – a typo, a missing step, or a technical error – let us know how we can improve!