weekstart - script and chart function
This function returns a value corresponding to a timestamp of the first millisecond of the first day (Monday) of the calendar week containing date. The default output format is the DateFormat set in the script.
Syntax:
WeekStart(date [, period_no = 0 [, first_week_day=0]])
Return data type: dual
Arguments:
Argument | Description |
---|---|
date | The date 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. |
first_week_day |
If you don't specify first_week_day, the value of variable FirstWeekDay will be used as the first day of the week. If you want to use another day as the first day of the week, set first_week_day to:
The integer returned by the function will now use the first day of the week that you set with first_week_day as base (0). |
Examples and results:
These examples use the date format DD/MM/YYYY. The date format is specified in the SET DateFormat statement at the top of your load script. Change the format in the examples to suit your requirements.
Example 1:
weekstart('12/01/2013')
Returns 07/01/2013.
Example 2:
weekstart('12/01/2013', -1 )
Returns 31/11/2012.
Example 3:
weekstart('12/01/2013', 0, 1)
Returns 08/01/2013.
Example 4:
Add the example script to your document and run it. Then add, at least, the fields listed in the results column to a sheet in your document to see the result.
This example finds the first day of the week following the week of each invoice date in the table.
TempTable:
LOAD RecNo() as InvID, * Inline [
InvDate
28/03/2012
10/12/2012
5/2/2013
31/3/2013
19/5/2013
15/9/2013
11/12/2013
2/3/2014
14/5/2014
13/6/2014
7/7/2014
4/8/2014
];
InvoiceData:
LOAD *,
WeekStart(InvDate, 1) AS WkStart
Resident TempTable;
Drop table TempTable;
The resulting table contains the original dates and a column with the return value of the weekstart() function. You can display the full timestamp by specifying the formatting in the chart properties.
InvDate | WkStart |
---|---|
28/03/2012 | 02/04/2012 |
10/12/2012 | 17/12/2012 |
5/2/2013 | 11/02/2013 |
31/3/2013 | 01/04/2013 |
19/5/2013 | 20/05/2013 |
15/9/2013 | 16/09/2013 |
11/12/2013 | 16/12/2013 |
2/3/2014 | 03/03/2014 |
14/5/2014 | 19/05/2014 |
13/6/2014 | 16/06/2014 |
7/7/2014 | 14/07/2014 |
4/8/2014 | 11/08/2014 |