Date functions in Power BI are essential tools for analyzing and organizing time-based data. They allow you to manipulate, extract, and calculate date values with precision, making them a vital part of data modeling and reporting. In this blog, we’ll explore some of the most commonly used Power BI date functions with practical examples.
1. TODAY and NOW
TODAY
The TODAY
function returns the current date without the time component.
Syntax:
TODAY()
Example: To calculate the age of an order:
Order Age = TODAY() - Sales[OrderDate]
NOW
The NOW
function returns the current date and time.
Syntax:
NOW()
Example: To calculate the number of hours since an order
was placed:
Hours Since Order = (NOW() - Sales[OrderDate]) * 24
2. YEAR, MONTH, and DAY
These functions extract specific components of a date.
Syntax:
YEAR(<date>)
MONTH(<date>)
DAY(<date>)
Example: Extract the year, month, and day from an order
date:
- Year:
·
Order Year = YEAR(Sales[OrderDate])
- Month:
·
Order Month = MONTH(Sales[OrderDate])
- Day:
·
Order Day = DAY(Sales[OrderDate])
3. WEEKDAY and WEEKNUM
WEEKDAY
The WEEKDAY
function returns the day of the week for a given date.
Syntax:
WEEKDAY(<date>, [return_type])
Example: To find the day of the week for an order date:
Weekday = WEEKDAY(Sales[OrderDate], 1) -- 1: Sunday is the first day of the week
WEEKNUM
The WEEKNUM
function returns the week number of a date.
Syntax:
WEEKNUM(<date>, [return_type])
Example: Calculate the week number for each order date:
Week Number = WEEKNUM(Sales[OrderDate], 1) -- 1: Week starts on Sunday
4. EOMONTH
The EOMONTH
function returns the last date of the month for a given date.
Syntax:
EOMONTH(<start_date>, <months>)
Example: To calculate the end of the current month for each
order date:
End of Month = EOMONTH(Sales[OrderDate], 0)
5. DATE and DATEDIFF
DATE
The DATE
function creates a date value from year, month, and day components.
Syntax:
DATE(<year>, <month>, <day>)
Example: To create a column with the first day of the
month:
First Day of Month = DATE(YEAR(Sales[OrderDate]), MONTH(Sales[OrderDate]), 1)
DATEDIFF
The DATEDIFF
function calculates the difference between two dates.
Syntax:
DATEDIFF(<start_date>, <end_date>, <interval>)
Example: To calculate the number of days between the order
date and the delivery date:
Days to Deliver = DATEDIFF(Sales[OrderDate], Sales[DeliveryDate], DAY)
6. FORMAT
The FORMAT
function allows you to display dates in specific formats.
Syntax:
FORMAT(<value>, <format_string>)
Example: To format order dates as "Month Year":
Formatted Date = FORMAT(Sales[OrderDate], "MMMM YYYY")
7. DATEADD and CALCULATE
DATEADD
The DATEADD
function shifts dates by a specified number of intervals.
Syntax:
DATEADD(<dates>, <number_of_intervals>, <interval>)
Example: To calculate the same date in the previous month:
Previous Month Date = DATEADD(Sales[OrderDate], -1, MONTH)
CALCULATE
While not exclusively a date function, CALCULATE
is often used for date-based
filtering.
Example: To calculate sales for the last year:
Last Year Sales = CALCULATE(SUM(Sales[Amount]), SAMEPERIODLASTYEAR(Sales[OrderDate]))
8. Benefits of Using Date Functions
- Dynamic Analysis: Generate
rolling averages, cumulative totals, or year-over-year comparisons.
- Enhanced Visualizations:
Create calendar views or time-series charts.
- Improved Filters: Build
slicers for dynamic filtering by year, month, or week.