Common SQL Errors

MySQL Error 1880: ER_OLD_TEMPORALS_UPGRADED - What It Means and How to Fix

Galaxy Team
August 8, 2025

MySQL upgraded legacy TIME, TIMESTAMP, or DATETIME columns to the new binary format and issued error 1880 as a notice.

Sign up for the latest in common SQL errors from the Galaxy Team!
Welcome to the Galaxy, Guardian!
You'll be receiving a confirmation email

Follow us on twitter :)
Oops! Something went wrong while submitting the form.

What is MySQL error 1880 (ER_OLD_TEMPORALS_UPGRADED)?

ER_OLD_TEMPORALS_UPGRADED means MySQL automatically converted old-format TIME, TIMESTAMP, or DATETIME columns to the modern binary format during an upgrade. No action is usually needed, but running mysql_upgrade and checking table definitions ensures full compatibility.

Error Highlights

Typical Error Message

ER_OLD_TEMPORALS_UPGRADED

Error Type

Upgrade Error

Language

MySQL

Symbol

upgraded to the new format. ER_OLD_TEMPORALS_UPGRADED was added in 5.7.4.

Error Code

1880

SQL State

HY000

Explanation

Table of Contents

What is MySQL error 1880 (ER_OLD_TEMPORALS_UPGRADED)?

MySQL error 1880 with condition name ER_OLD_TEMPORALS_UPGRADED informs you that TIME, TIMESTAMP, or DATETIME columns created before MySQL 5.6.4 have been transparently converted to the new binary storage format introduced in MySQL 5.6 and required in 5.7 and later.

The message is raised during mysql_upgrade, an in-place server upgrade, or a CHECK TABLE ... FOR UPGRADE command. It is not a fatal error but a notice that metadata has changed, and applications should review column defaults and precision.

What Causes This Error?

The server triggers the notice when it finds tables that still store temporal values in the legacy packed format used prior to 5.6.4. When the upgrade process rewrites the .frm definition to the new format, it emits ER_OLD_TEMPORALS_UPGRADED to document the change.

The message can also appear when an ALTER TABLE, OPTIMIZE TABLE, or table rebuild forces the engine to rewrite rows that contain old-format temporal columns.

How to Fix ER_OLD_TEMPORALS_UPGRADED

No manual fix is usually required because MySQL already upgraded the column definition. However, you should run CHECK TABLE ... FOR UPGRADE on all databases, back up the upgraded tables, and verify that your application handles any new fractional-seconds precision.

If you prefer explicit control, dump the affected table, drop it, and reload it with CREATE TABLE statements that include explicit fractional precision such as DATETIME(6) to avoid implicit conversions in future upgrades.

Common Scenarios and Solutions

Upgrading from MySQL 5.5 or 5.6 to 8.0 often shows hundreds of ER_OLD_TEMPORALS_UPGRADED messages. Confirm that mysql_upgrade completed successfully, then restart the server to reload the new metadata cache.

Replication setups: run mysql_upgrade on each replica before pointing it at the 8.0 primary, or stop replication, upgrade, run mysql_upgrade, and then resume to avoid metadata mismatch.

Best Practices to Avoid This Error

Create new tables with explicit DATETIME, TIMESTAMP, and TIME precision so future upgrades skip implicit rewrites. Always run mysql_upgrade immediately after installing a newer server version.

Include CHECK TABLE ... FOR UPGRADE and ALTER TABLE ... FORCE steps in your CI pipelines. Galaxy users can store these maintenance scripts in a shared Collection so all teammates reuse the same vetted commands.

Related Errors and Solutions

ER_TABLE_UPGRADE_REQUIRED (error 1719) appears when the server detects tables in an old format that cannot be auto-upgraded and requires manual ALTER TABLE. ER_CANT_OPEN_TABLE (error 1137) may follow if you attempt to access a table before upgrading.

Common Causes

Common Causes of ER_OLD_TEMPORALS_UPGRADED

Upgrading a server from version 5.5 or early 5.6 to 5.6.4+ or 5.7 triggers automatic conversion of legacy temporal columns.

Running mysql_upgrade or CHECK TABLE ... FOR UPGRADE manually forces the server to rebuild tables with old temporal formats.

Executing ALTER TABLE, OPTIMIZE TABLE, or a table rebuild on a table that still stores temporal columns in the packed legacy format.

Restoring a dump created on a very old server into a newer server without prior ALTER TABLE rewrites.

Related Errors

ER_TABLE_UPGRADE_REQUIRED (1719)

Indicates that a table uses an old format that cannot be auto-upgraded and requires manual ALTER TABLE.

ER_CANT_OPEN_TABLE (1137)

Appears when the server fails to open a table, often after a failed upgrade.

ER_INVALID_DEFAULT (1067)

Raised when a temporal column has an invalid default value after an upgrade.

FAQs

Does ER_OLD_TEMPORALS_UPGRADED stop my upgrade?

No. The message is informational. The upgrade continues after converting the columns.

Can I ignore ER_OLD_TEMPORALS_UPGRADED?

You can, but you should still back up the upgraded tables and test your application.

How can Galaxy help with this notice?

Galaxy lets you store and share your upgrade scripts in a Collection, ensuring every teammate runs the same vetted commands.

Will upgrading affect replication?

Run mysql_upgrade on each replica before restarting replication to avoid metadata mismatches.

Start Querying with the Modern SQL Editor Today!
Welcome to the Galaxy, Guardian!
You'll be receiving a confirmation email

Follow us on twitter :)
Oops! Something went wrong while submitting the form.

Check out some other errors

Trusted by top engineers on high-velocity teams
Aryeo Logo
Assort Health
Curri
Rubie Logo
Bauhealth Logo
Truvideo Logo