STRASMORE/EXPLORE 2,767 QUERIES

gst_session_clock

Answered against 22 years of US equities and 12 years of US options data and published with the query that produced it. This result is stored as of 2026-09-29, from us-stock-market-hours-uae-time.

as of table 10×7read in context →
gst_session_clock — 10 rows by 7 columns, computed from US exchange, SIP and OPRA data.
session_labeloffset_hoursgst_premarket_opengst_regular_opengst_early_closegst_regular_closegst_after_hours_end
Mon Oct 27, 2025812:0017:3021:0000:0004:00
Tue Oct 28, 2025812:0017:3021:0000:0004:00
Wed Oct 29, 2025812:0017:3021:0000:0004:00
Thu Oct 30, 2025812:0017:3021:0000:0004:00
Fri Oct 31, 2025812:0017:3021:0000:0004:00
Mon Nov 3, 2025913:0018:3022:0001:0005:00
Tue Nov 4, 2025913:0018:3022:0001:0005:00
Wed Nov 5, 2025913:0018:3022:0001:0005:00
Thu Nov 6, 2025913:0018:3022:0001:0005:00
Fri Nov 7, 2025913:0018:3022:0001:0005:00
Rows × columns
10 × 7
Computed
Completeness
No missing values
Source
US exchange, SIP and OPRA market data
Licence
Strasmore terms · free, no signup
Formats
JSON · CSV · the SQL below

What each column holds

Column definitions for gst_session_clock, derived from the stored result.
ColumnTypeRangeNotes
session_label text 10 distinct values
offset_hours number 8 to 9
gst_premarket_open text 2 distinct values (12:00, 13:00)
gst_regular_open text 2 distinct values (17:30, 18:30)
gst_early_close text 2 distinct values (21:00, 22:00)
gst_regular_close text 2 distinct values (00:00, 01:00)
gst_after_hours_end text 2 distinct values (04:00, 05:00)

Computed from Strasmore's warehouse of US exchange, SIP and OPRA market data. Equity prices are delayed; options greeks and implied volatility are end-of-day. This result is stored, not recomputed on load — it is exactly the numbers that were returned on , and the query below is what returned them.

Run it yourself

This is the exact query behind the result above. Change a ticker, a date or a column and run it against the warehouse — no account, no key. The no-signup tier is smaller than the one this page was computed on; a query that reaches past it comes back saying which plan runs it.

WITH bars AS
(
    SELECT
        toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
        toTimeZone(window_start, 'America/New_York')         AS et_ts,
        toTimeZone(window_start, 'Asia/Dubai')               AS gst_ts,
        toHour(et_ts) * 60 + toMinute(et_ts)                 AS et_minute,
        toHour(gst_ts) * 60 + toMinute(gst_ts)               AS gst_minute
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime('2025-10-27 04:00:00', 'UTC')
      AND window_start <  toDateTime('2025-11-08 06:00:00', 'UTC')
),
offsets AS
(
    SELECT
        et_date,
        anyIf(gst_minute - et_minute, et_minute = 570) AS gst_offset_minutes
    FROM bars
    GROUP BY et_date
    HAVING countIf(et_minute = 570) > 0
)
SELECT
    concat(formatDateTime(et_date, '%a %b '), toString(toDayOfMonth(et_date)), ', ', toString(toYear(et_date))) AS session_label,
    toUInt8(intDiv(gst_offset_minutes, 60))                                                       AS offset_hours,
    formatDateTime(toDateTime(toUInt32((240  + gst_offset_minutes) % 1440) * 60, 'UTC'), '%H:%i') AS gst_premarket_open,
    formatDateTime(toDateTime(toUInt32((570  + gst_offset_minutes) % 1440) * 60, 'UTC'), '%H:%i') AS gst_regular_open,
    formatDateTime(toDateTime(toUInt32((780  + gst_offset_minutes) % 1440) * 60, 'UTC'), '%H:%i') AS gst_early_close,
    formatDateTime(toDateTime(toUInt32((960  + gst_offset_minutes) % 1440) * 60, 'UTC'), '%H:%i') AS gst_regular_close,
    formatDateTime(toDateTime(toUInt32((1200 + gst_offset_minutes) % 1440) * 60, 'UTC'), '%H:%i') AS gst_after_hours_end
FROM offsets
ORDER BY et_date
⌘/Ctrl + Enter

Work with this data in your AI assistant

Opens ready to query, with this page's data. Free, no account.

More from this analysisus-stock-market-hours-uae-time
liquidity_by_hour ranking 16×4 → us_closures_gst series 12×6 → session_share_by_ticker ranking 5×4 → The 2s10s spread, every print of the half table 124×2 → The 2s10s spread, every print of the half table 124×2 → Every half-year since 1976: the 2y and 10y change, the twist between them, and the half's lowest 2s10s print table 100×7 → See all 2,767 queries →