Date.MonthName returns the full name of the month from a date, like October or January. Available in Excel (Power Query), Power BI Desktop, and Power BI Service.
If you want to turn a date column into readable month names for a report or summary, this is the function to use.
Syntax of Date.MonthName Function
Date.MonthName(date as any, optional culture as nullable text) as nullable text
where
date(required, any). The date to get the month name from. The type isany, so you can pass adate,datetime, ordatetimezonevalue directly.culture(optional, nullable text). A culture code that sets the output language, for example"en-US"or"it-IT". When omitted, the current system culture is used.
Returns: the full month name as nullable text, for example October. If date is null, it returns null with no error.
In plain terms, you give it a date and it hands back the month spelled out as text.
Example 1: Get the month name from a date
The simplest call. Pass a date and nothing else.
let
Source = Date.MonthName(#date(2025,10,8))
in
Source
Result: October
The date is October 8, 2025, so the function returns October. The day and year make no difference here, only the month matters.
Example 2: Return the month name in another language
Pass a culture code as the second argument to control the output language. Here is the same date in Italian.
let
Source = Date.MonthName(#date(2025,10,8),"it-IT")
in
Source
Result: ottobre
Note the lowercase o. Italian does not capitalize month names, and the function follows the spelling rules of the culture you pass.
Example 3: Use a datetime value directly
Because date is typed as any, a datetime value works without converting it first.
let
Source = Date.MonthName(#datetime(2026,1,23,18,45,0))
in
Source
Result: January
The time portion is ignored. A datetimezone value works the same way, so you don’t need to strip anything off first.
Example 4: Add a month name column to a table
Say you have a ServiceLog query that tracks machine maintenance, and you want a readable month column for a summary.
Here is the starting data:
| Machine | ServiceDate | Technician |
|---|---|---|
| Press Brake 2 | 2026-01-19 | R. Vance |
| CNC Router | 2026-04-27 | L. Ortiz |
| Laser Cutter | 2026-04-30 | R. Vance |
| Packaging Line | 2026-09-15 | M. Chen |
Now add the column with Table.AddColumn:
let
Source = Excel.CurrentWorkbook(){[Name="ServiceLog"]}[Content],
#"Added Month" = Table.AddColumn(Source,"Service Month",each Date.MonthName([ServiceDate])),
Result = Table.SelectColumns(#"Added Month",{"Machine","Service Month"})
in
Result
This runs Date.MonthName on each ServiceDate, then keeps only the two columns the summary needs.
The result has one month name per machine:
| Machine | Service Month |
|---|---|
| Press Brake 2 | January |
| CNC Router | April |
| Laser Cutter | April |
| Packaging Line | September |
The two April services land in the same bucket, which is exactly what you want when you group or report by month.
Things to keep in mind with Date.MonthName
- The output language depends on the machine running the query. With no
culture, the same query can returnMarchon one PC andMärzon another. Pass a culture when a report must refresh the same everywhere. Examples 1 and 3 assume an English locale. - Month names sort alphabetically, not chronologically.
Aprillands beforeJanuary. Sort on a numeric month column instead, then remove it once the rows are in order. - A text value throws an error, even though
dateis typedany.Date.MonthName("2026-01-23")fails withExpression.Error: We cannot convert the value "2026-01-23" to type Date.Convert it first withDate.FromText, or set a whole text column to the Date type with Table.TransformColumnTypes. - Capitalization comes from the culture, not the function. Lowercase results like
ottobrein Example 2 are correct. Italian and Dutch lowercase their month names, German capitalizes them.
Common questions about Date.MonthName
Can Date.MonthName return an abbreviated month name like Jan?
No, it always returns the full name. For abbreviations, format the date with Date.ToText instead, using the "MMM" format code.
How do I get the month number instead of the name?
Use Date.Month. It returns the month as a number from 1 to 12, which also gives you the column you need for chronological sorting.
How do I get the current month’s name?
Pass the current time from DateTime.LocalNow straight in: Date.MonthName(DateTime.LocalNow()).
List of All Power Query Functions
Related Power Query Functions / Articles: