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