month
month, data type
The month is a primitive data type, representing months as the combination of a year and a month number within that year, such as 2001-01 (the earliest month representable in Envision) or 2020-10.
read "/Promo.ion" as Promotions with
StartWeek : month
EndWeek : month
Date arithmetic is supported by the month type: monthA + 1 is the month right after monthA, and monthA - monthB is the number of months between monthA and monthB.
month(y: number, m: number) 🡒 month, const dash pure function
Returns the month number m in year y ; will raise an error if the combination is incorrect.
show scalar "" with
month(2020, 10) // 2020-10
month(d: date) 🡒 month, const dash pure function
Returns the month associated to the specified date.
show summary "" a1a3 with
month(date(2019, 12, 28))
month(date(2019, 12, 30))
month(date(2020, 1, 1))
Month, special calendar table
The table Month is a special calendar table. This table can only be created with expect [date] in a read block, or by an unfiltering statement with span date =. When introduced, the Month table always has month as its primary dimension (of type month too).
With span:
span date = [date(2024, 1, 1) .. date(2024, 4, 28)]
// 2-space of indent, we are within the 'span' block
Month.X = random.uniform(1 into Month, 10 into Month)
show linechart "Monthly" with Month.X
Or alternatively:
keep span date = [date(2024, 1, 1) .. date(2024, 2, 28)]
// no indent, as 'keep' is used
Month.X = random.uniform(1 into Month, 10 into Month)
show linechart "Monthly" with Month.X
A read block can also be used to introduce the Week table:
read "/sales.csv" as Sales expect [date] with // implicitely creates 'Month'
"DateOfSales" as date : date // re-map the column originally named 'DateOfSales' to 'date'
Qty : number
Month.Qty = sum(Sales.Qty) // 'Sales' is downstream of 'Month'
show linechart "Monthly" with Month.Qty
The Month table cannot be created via the usual means, such as table comprehensions for example.
month, primary dimension
The primary dimension of the table Month is named month, and it is of type month.
span date = [date(2024, 1, 1) .. date(2024, 5, 28)]
// 2-space ident, we are within the 'span' block
Month.X = random.poisson(5 into Month) // 5 is the mean, broadcast into 'Month'
myMonth = month(2024, 2) // February of 2024
show scalar "X in February" with Month.X[myMonth] // look-up on the primary dimension of 'Month'
If a table has date as a primary or secondary dimensions, it automatically receives month as a secondary dimension as well.