TODAY Function

Excel Functions › Date & Time

All Excel versions Date & Time Volatile

The Excel TODAY function returns the current date — and keeps it current, recalculating to the new date every time the workbook recalculates or you reopen it tomorrow. That makes it the engine of countdowns, overdue flags, and age calculations… and exactly the wrong tool when you need a date that stays put. For a frozen date stamp, the shortcut is Ctrl+;.


Quick answer: the current date, always up to date:
=TODAY()
The parentheses are required and stay empty. Need the current date and time? That’s NOW. Need today’s date frozen forever? Press Ctrl+; instead of typing a formula.

Syntax

=TODAY()
ArgumentDescription
(none)TODAY takes no arguments, but the empty parentheses are mandatory: =TODAY(), never =TODAY.

What it returns: the date serial number for the current date — Excel counts days from January 1, 1900, so on June 12, 2026 TODAY() returns 46185. There is no time portion: TODAY() is always a whole number, as if the clock read midnight. The cell usually formats itself as a date automatically.

TODAY is volatile. It recalculates on every workbook change, every open, every print. The value rolls over at midnight (after a recalculation) — a dashboard left open overnight updates the moment anything triggers recalc. Volatility is harmless in a few cells but can slow giant workbooks where thousands of formulas hang off one TODAY(); put TODAY() in one cell and reference it.

Countdowns, age, and overdue flags

Because dates are serial numbers, subtraction is day-counting. Days remaining until each due date:

ABC
1TaskDue date=B-TODAY()
2File quarterly report06/30/202618
3Renew domain07/15/202633
4Send invoices06/15/20263

Day counts assume today is June 12, 2026 — open the file tomorrow and every number drops by one, automatically.

=B2 - TODAY() // days until due (negative = overdue)
=IF(B2 < TODAY(), "OVERDUE", B2 - TODAY() & " days left")

Age and tenure in completed years use DATEDIF with TODAY as the end date:

=DATEDIF(B2, TODAY(), "y") // completed years from B2 to today

Try it: volatile vs. static, live

Live demo

TODAY() is like a wall clock — look again later and it shows a new value. Ctrl+; is a photograph of that clock. Watch the difference: the left panel ticks toward midnight; the right panel is frozen the moment you stamp it.

Click the button to stamp the date.

When you want today — and when you really don't

Use the formula when the answer should change with the calendar: days-overdue reports, rolling 30-day filters, "as of" dashboards:

=TODAY() - 30 // the rolling cutoff: 30 days ago
=EOMONTH(TODAY(), 0) // last day of the current month
=TODAY() - WEEKDAY(TODAY(), 3) // Monday of the current week

Use a static date when you are recording a fact: invoice issued, payment received, record created. A TODAY() formula in an "invoice date" column silently rewrites history every day. Instead:

  • Ctrl+; — inserts today’s date as a fixed value
  • Ctrl+Shift+; — inserts the current time as a fixed value
  • Or convert an existing TODAY() formula: copy the cell, then Paste Special › Values

Errors & common pitfalls

#NAME? — missing parentheses. =TODAY without () isn’t a function call. Excel needs =TODAY(), empty parentheses and all.

Pitfall: "my dates changed overnight." The #1 TODAY mistake — using it to timestamp events. Every TODAY() in the file shows the current date, not the date you entered it. Stamp facts with Ctrl+;.

Pitfall: comparing TODAY() to NOW(). NOW() includes a time fraction, so =NOW() = TODAY() is FALSE except at the stroke of midnight. To compare a timestamp to today, strip the time: =INT(A2) = TODAY().

Pitfall: the date is stale. If a workbook sits open past midnight with calculation set to Manual, TODAY() keeps yesterday’s value until you press F9 or edit something. The function updates on recalculation, not by a timer.

Practice workbook

📊
Download the free TODAY practice workbook
Every example on this page, ready to open in Excel — plus practice challenges with answers on a separate tab. No sign-up required.

Frequently asked questions

What's the difference between TODAY and NOW?
=TODAY() returns just the date (a whole serial number). =NOW() returns the date plus the time as a decimal fraction — 46185.5 is noon on June 12, 2026. Use TODAY for date math; NOW when hours and minutes matter.
How do I enter today's date so it never changes?
Press Ctrl+; (Ctrl plus semicolon). Excel inserts the current date as a plain value with no formula behind it. Ctrl+Shift+; does the same for the current time.
Why did all my TODAY dates change when I reopened the file?
Because that's what TODAY does: it's volatile and recalculates to the current date on every open. If those cells were meant to record when something happened, replace them with static dates (Ctrl+; or Paste Special > Values).
How do I count days between today and a deadline?
Plain subtraction: =B2-TODAY() for days remaining, or =TODAY()-B2 for days elapsed — dates are serial day-counts, so the difference is a number of days. For working days only, use NETWORKDAYS.
Does TODAY slow down my workbook?
A few TODAY cells are harmless. But TODAY is volatile, so every formula that depends on it recalculates on every edit. In very large models, put =TODAY() in one named cell and point everything at that cell.
Why does TODAY() show a number like 46185?
That's the date serial number - days since January 1, 1900. The cell lost its date format; press Ctrl+1 and choose a Date format to see June 12, 2026 again.

Master functions like this in one day

This page covers one function. Our Excel Formulas and Functions class covers the 30 that matter most — live, hands-on, taught by professionals in Dallas–Fort Worth, Houston, Austin, Oklahoma City, Denver, or online.

See the Formulas & Functions Class

Related functions: NOW · DATE · DATEDIF · NETWORKDAYS · EOMONTH · EDATE