How to Add Today's Date in Power BI

Cody Schneider8 min read

Adding today's date to a Power BI report seems simple, but it’s a small detail that makes your dashboards feel dynamic and current. It can act as a timestamp for your last data refresh or become the engine for powerful time-based calculations. This guide will walk you through the easiest ways to add a TODAY function in Power BI using DAX, explaining the difference between columns and measures and showing you how to put the date to work in your visuals.

Why Show Today's Date in Your Report?

Before jumping into the "how," it's helpful to understand the "why." A live, updating date isn't just for show, it serves several practical purposes that can significantly enhance your reports:

  • Data Freshness Indicator: Displaying today’s date in a card visual instantly tells viewers how current the data is. A title like "Sales Report - Refreshed on [Today's Date]" provides immediate context.
  • Dynamic Filtering: It allows you to create filters and slicers that are always relevant. For example, you can calculate and flag inventory items that have been in stock for more than 90 days from today.
  • Time-Based Calculations: Today's date is essential for calculations that measure the time elapsed since a past event. You can calculate things like customer age, days since the last purchase, or the age of an open support ticket.
  • Relative Date Slicers: While Power BI has its own relative date slicer, using TODAY() in custom slicer logic can give you more control, allowing you to build views like "Last 30 Days" or "Month to Date" dashboards.

The Core DAX Functions: TODAY() vs. NOW()

Power BI's DAX language gives us two main functions to get the current date and time. While they look similar, they have one key difference.

TODAY()

The TODAY() function is straightforward: it returns the current date. Internally, the time is always set to midnight (12:00:00 AM). It’s perfect when you only care about the day, not the specific second the report was refreshed.

TODAY()

Both TODAY() and NOW() are known as volatile functions. This means they recalculate every time the report refreshes or when any change in the data model triggers an update. You don't need to manually update them.

NOW()

The NOW() function goes one step further: it returns the current date and the current time.

NOW()

Which One Should You Use?

The decision is simple:

  • If you only need the date for your visual or calculation (like calculating the number of days between two dates), use TODAY(). It’s cleaner and avoids potential complications with time values.
  • If you need the specific timestamp of when the data was last refreshed, such as in a refresh log or a detailed timestamp visual, use NOW().

For most reporting scenarios, TODAY() is the more common and practical choice.

Method 1: Creating a "Today's Date" Calculated Column

A calculated column adds a new column to one of your existing tables. The value in this column is calculated for every row during a data refresh. It’s a good method if you need to use the date in a row-by-row context or want to build a slicer based on it.

Let's add a TODAY() column to your 'Calendar' or 'Orders' table.

Step-by-Step Instructions:

  1. Navigate to the Data view by clicking the table icon on the left-hand pane.
  2. Select the table you want to add the column to from the Fields pane on the right.
  3. In the top ribbon, click on the Table tools tab, then select New Column.
  4. The formula bar will appear. Type in the following DAX formula and press Enter:
Today's Date Column = TODAY()

You will now see a new column in your table, with every single row showing today’s date.

Formatting Your New Date Column

By default, Power BI might format the new column as Date/Time. To clean this up:

  1. Select the new column in the Fields pane.
  2. The Column tools tab will appear in the top ribbon.
  3. In the Formatting section, click the Format dropdown and choose Short date or another format you prefer.

Method 2: Creating a "Today's Date" Measure

A measure is a calculation that runs on-demand when you use it in a visual. Unlike a calculated column, it doesn’t store any data directly in your model, making it more memory-efficient. Creating a measure is the best practice for simply displaying today’s date in a card or using it within another dynamic calculation.

Step-by-Step Instructions:

  1. Navigate to the Report view by clicking the chart icon on the left-hand pane.
  2. You can either click New Measure in the Home ribbon or right-click any table in your Fields pane and select New measure. It is best practice to store measures in a dedicated measures table, but any table will work.
  3. The formula bar will appear. Type in the following DAX formula and press Enter:
Today's Date Measure = TODAY()

Nothing will appear to happen right away because measures only produce a value when they're used. Now, let's use it.

  1. Drag a Card visual onto your report canvas.
  2. From the Fields pane, drag your new Today's Date Measure into the "Fields" area of the Card visual.

Voila! The card now displays today's date, and it will update automatically every time the dataset is refreshed.

Calculated Column vs. Measure: Which Is Better?

This is a common point of confusion for new Power BI users. Here’s a simple breakdown for the TODAY() function:

  • Use a Calculated Column if: You need a static value representing the date of the last refresh for every row, and you plan to use it as a slicer or in row-level calculations. However, using a volatile function like TODAY() in a calculated column can sometimes lead to unexpected performance costs, as it has to be re-evaluated for every row at every refresh.
  • Use a Measure if: You want to display today’s date in a visual (like a card or report title) or use it as part of another calculation or measure. This is the more efficient and recommended approach in 90% of cases for showing the current date.

General rule of thumb: When in doubt, start with a measure. It’s more flexible and better for performance.

Practical Examples: Using Today's Date in Your Report

Here are a few common ways to use your new dynamic date.

Calculating "Days Passed" Since an Event

Let's say you have an Orders table with an [OrderDate] column. You can create a calculated column to see how many days old each order is.

Steps:

  1. Go to your Orders table in the Data view.
  2. Create a new column.
  3. Use the DATEDIFF function for a robust calculation:
Days Since Order = DATEDIFF('Orders'[OrderDate], TODAY(), DAY)

This formula calculates the difference between the order date and today, returning the result in days. Now you can easily filter for orders older than a certain number of days.

Creating a Dynamic Report Title

A static title is boring. Make your report header dynamic using your TODAY() measure.

Steps:

  1. Create a new measure with some text and formatting:
Dynamic Report Title = "Sales Performance as of " & FORMAT(TODAY(), "mmmm d, yyyy")
  1. Add a Card visual to the top of your report page.
  2. Drag your Dynamic Report Title measure into the card.
  3. Turn off the "Category label" in the card's formatting options to make it look clean.

Now your report always shows a current, professional title.

Bonus: Using Power Query for a Static Refresh Date

Sometimes you don't want a "live" date, you want a permanent timestamp of the exact date and time the data was last pulled into Power BI. Unlike DAX's volatile functions, the Power Query DateTime.LocalNow() function is calculated only once - during the data refresh - and then hardcoded into the column.

Steps:

  1. Open the Power Query Editor by clicking "Transform data" in the Home ribbon.
  2. Select the query (table) you want to add the timestamp to.
  3. Go to the Add Column tab and click Custom Column.
  4. Name the new column something like "Data Refreshed On" and enter this formula:
DateTime.LocalNow()

Click "OK." You'll now have a column that shows the exact date and time of the refresh. This value will not change until the next time you refresh your dataset.

Final Thoughts

By learning the difference between TODAY() and NOW(), and understanding when to use a calculated column versus a measure, you can add powerful, dynamic context to your Power BI reports. These simple DAX functions are foundational building blocks that open the door to far more complex and insightful time-based analysis.

While Power BI is an indispensable tool for deep analysis, it requires writing formulas and clicking through menus to get what you need. We built Graphed to simplify this process entirely. Instead of configuring functions, you can connect your data sources and just ask plain English questions like, "Show me a comparison of last month's sales vs. this month's" or "Which products are performing best this quarter?". Graphed automatically builds the live dashboard for you in seconds, saving you the time spent on manual setup so you can focus on the insights.

Related Articles

How to Connect Facebook to Google Data Studio: The Complete Guide for 2026

Connecting Facebook Ads to Google Data Studio (now called Looker Studio) has become essential for digital marketers who want to create comprehensive, visually appealing reports that go beyond the basic analytics provided by Facebook's native Ads Manager. If you're struggling with fragmented reporting across multiple platforms or spending too much time manually exporting data, this guide will show you exactly how to streamline your Facebook advertising analytics.

Appsflyer vs Mixpanel​: Complete 2026 Comparison Guide

The difference between AppsFlyer and Mixpanel isn't just about features—it's about understanding two fundamentally different approaches to data that can make or break your growth strategy. One tracks how users find you, the other reveals what they do once they arrive. Most companies need insights from both worlds, but knowing where to start can save you months of implementation headaches and thousands in wasted budget.