UTC to EST in SQL

Convert a UTC timestamp column to US Eastern Time at query time, in SQL Server / Oracle / BigQuery. All UTC stays the source of truth in the table — conversion happens only when you read it.

UTC → TIME ZONE Live
RESULT — US Eastern Time
12:55:41
Monday, September 21, 2026
UTC offset: UTC−4
Zone: EDT

Use this live converter to sanity-check a single value before writing the query.

Example table

These examples assume a table storing timestamps in UTC, which is the recommended practice for any database.

CellContains
idOrder ID
created_at_utcTimestamp stored in UTC
customer_nameText

Conversion query by engine

SQL Server

SQL Server — UTC to EST
SELECT order_id, created_at_utc, CAST(created_at_utc AS DATETIME2) AT TIME ZONE 'UTC' AT TIME ZONE 'Eastern Standard Time' AS created_at_est FROM orders;

Two AT TIME ZONE calls are required: the first labels the plain datetime2 value as UTC, the second converts it. Applying AT TIME ZONE 'Eastern Standard Time' directly, without the first step, silently gives the wrong answer — SQL Server otherwise assumes the value is already in the target zone. Automatically adjusts for EST/EDT.

Oracle

Oracle — UTC to EST
SELECT order_id, created_at_utc, FROM_TZ(CAST(created_at_utc AS TIMESTAMP), 'UTC') AT TIME ZONE 'America/New_York' AS created_at_est FROM orders;

Using the IANA region name 'America/New_York' (rather than the abbreviation 'EST') makes Oracle apply the correct EST/EDT rule automatically for the date in question.

BigQuery

BigQuery — UTC to EST
SELECT order_id, created_at_utc, DATETIME(created_at_utc, 'America/New_York') AS created_at_est FROM `project.dataset.orders`;

Automatically resolves to EST or EDT depending on the row's date.

Daylight saving

2026 transition dates: US clocks move to daylight time on March 8, 2026 and back to standard time on November 1, 2026. A timestamp column spans both periods over a year, so a single fixed offset (e.g. always subtracting 5 or 8 hours) will be wrong for roughly half the calendar. Every engine above uses a named time zone specifically so it resolves the correct offset per row automatically — that's the recommended approach over manual offset arithmetic in SQL.

Worked example

EST, standard time:

CellContains
created_at_utc2026-01-15 23:00:00
created_at_est2026-01-15 18:00:00

EDT, daylight time:

CellContains
created_at_utc2026-07-15 23:00:00
created_at_est2026-07-15 19:00:00

Date rollover example

A conversion that crosses midnight correctly shows the new calendar date — every engine above operates on the full timestamp, not just the time portion.

CellContains
created_at_utc2026-01-16 03:00:00 (UTC)
created_at_est2026-01-15 22:00:00 (EST)

Filtering by local time — a common mistake

Converting the column inside a WHERE clause forces the database to evaluate every row before it can compare, which defeats any index on the UTC column. Convert the boundary value instead and filter the raw column.

❌ Avoid — SQL Server
SELECT * FROM orders WHERE (CAST(created_at_utc AS DATETIME2) AT TIME ZONE 'UTC' AT TIME ZONE 'Eastern Standard Time') >= '2026-01-15 00:00:00';
✅ Prefer — SQL Server
SELECT * FROM orders WHERE created_at_utc >= (CAST('2026-01-15 00:00:00' AS DATETIME2) AT TIME ZONE 'Eastern Standard Time' AT TIME ZONE 'UTC');

Common mistakes

  • Hardcoding a fixed -5-hour offset as if it applies year-round — it's only correct for part of the year; the other part needs -4 hours.
  • Filtering directly on a converted expression (see below) instead of converting the comparison boundary — this prevents the database from using an index on the UTC column.
  • Converting to EST before storing the value back in the table — store UTC as the single source of truth and convert only at query/display time.

UTC vs. local timestamps

Store every timestamp in UTC. It's unambiguous, sorts correctly, and never needs to be re-interpreted when daylight saving changes. Convert to EST only in the query that displays the value to a user — as shown above — never in the write path.

Frequently asked questions

Use a timezone-aware function in your database engine — for example in SQL Server: CAST(created_at_utc AS DATETIME2) AT TIME ZONE 'UTC' AT TIME ZONE 'Eastern Standard Time' AS created_at_est

It depends on your database engine — this page covers SQL Server / Oracle / BigQuery, each with verified syntax.

Only if you use a named IANA time zone (e.g. 'America/New_York') rather than a fixed offset. Every function shown on this page does this correctly; a hardcoded -5-hour subtraction does not.