Skip to main content

monthsstart - script and chart function

This function returns a value corresponding to the timestamp of the first millisecond of the month, bi-month, quarter, four-month period, or half-year containing a base date. It is also possible to find the timestamp for a previous or following time period.


MonthsStart(n_months, date[, period_no [, first_month_of_year]])

Return data type: dual


MonthsStart arguments
Argument Description
n_months The number of months that defines the period. An integer or expression that resolves to an integer that must be one of: 1 (equivalent to the inmonth() function), 2 (bi-month), 3 (equivalent to the inquarter() function), 4 (four-month period), or 6 (half year).
date The date to evaluate.
period_no The period can be offset by period_no, an integer, or expression resolving to an integer, where the value 0 indicates the period that contains base_date. Negative values in period_no indicate preceding periods and positive values indicate succeeding periods.

If you want to work with (fiscal) years not starting in January, indicate a value between 2 and 12 in first_month_of_year.

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:  

monthsstart(4, '19/10/2013')

Returns 1/09/2013.

Example 2:  

monthsstart(4, '19/10/2013', -1)

Returns 01/05/2013.

Example 3:  

monthsstart(4, '19/10/2013', 0, 2 )

Returns 01/10/2013.
Because the start of the year becomes month 2.

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 bi-month period for each invoice date, shifted forwards by one bi-month period.


LOAD RecNo() as InvID, * Inline [


















MonthsStart(2, InvDate, 1) AS BiMthsStart

Resident TempTable;

Drop table TempTable;

The resulting table contains the original dates and a column with the return value of the MonthsStart() function.

Example 4 results
InvDate BiMthsStart
28/03/2012 01/05/2012
10/12/2012 01/01/2013
5/2/2013 01/03/2013
31/3/2013 01/05/2013
19/5/2013 01/07/2013
15/9/2013 01/11/2013
11/12/2013 01/01/2014
2/3/2014 01/05/2014
14/5/2014 01/07/2014
13/6/2014 01/07/2014
7/7/2014 01/09/2014
4/8/2014 01/09/2014

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!

Join the Analytics Modernization Program

Remove banner from view

Modernize without compromising your valuable QlikView apps with the Analytics Modernization Program. Click here for more information or reach out: