DATE vs DATETIME vs TIMESTAMP in BigQuery

Last updated July 26, 2026 · By the SaturnSQL team

DATE has no time component, DATETIME is a civil date and time with no timezone, and TIMESTAMP is an absolute instant stored in UTC and shown in whatever timezone you request.

SELECT
  DATE '2026-07-26' AS a_date,
  DATETIME '2026-07-26 14:30:00' AS a_datetime,
  TIMESTAMP '2026-07-26 14:30:00 UTC' AS a_timestamp;

Why the distinction matters

A DATETIME of 9:00 AM means 9:00 AM everywhere, with no fixed instant behind it, good for something like 'the store opens at 9 AM local time'. A TIMESTAMP is anchored to a real instant, so converting it to a timezone changes the displayed clock time but not the underlying moment.

SELECT TIMESTAMP('2026-07-26 14:30:00 UTC') AS utc_instant,
       DATETIME(TIMESTAMP('2026-07-26 14:30:00 UTC'), 'America/New_York') AS ny_local_time;

Converting between them

SELECT
  DATE(event_timestamp, 'America/New_York') AS event_date_ny,
  DATETIME(event_timestamp, 'America/New_York') AS event_datetime_ny
FROM events;

Run this in SaturnSQL

SaturnSQL is a browser-based SQL editor for teams: shared query library, schema-aware autocomplete, and scheduled exports to Google Sheets and Slack.

Try it free

Related BigQuery guides