{"slug":"is-the-stock-market-open-today","qid":"status_now","label":"Market status computed at this page's refresh: weekday check, holiday check, and the ET clock","post_title":"Is the Stock Market Open Today?","post_url":"/blog/is-the-stock-market-open-today#q-status_now","columns":["date_checked","weekday","time_checked_et","todays_calendar","market_status","next_regular_session","days_to_next_session"],"rows":[{"date_checked":"2026-08-25","weekday":"Tuesday","time_checked_et":"09:00","todays_calendar":"normal weekday","market_status":"PREMARKET","next_regular_session":"2026-08-25","days_to_next_session":0}],"shape":"scalar","sql":"WITH\n    toTimeZone(now(), 'America/New_York') AS now_et,\n    toDate(now_et) AS today_et,\n    toHour(now_et) * 60 + toMinute(now_et) AS min_now,\n    (SELECT countDistinct(date) FROM global_markets.stocks_market_holidays\n      WHERE date = toDate(toTimeZone(now(), 'America/New_York')) AND status = 'closed') AS today_full_holiday,\n    (SELECT countDistinct(date) FROM global_markets.stocks_market_holidays\n      WHERE date = toDate(toTimeZone(now(), 'America/New_York')) AND status = 'early-close') AS today_early,\n    (SELECT any(name) FROM global_markets.stocks_market_holidays\n      WHERE date = toDate(toTimeZone(now(), 'America/New_York'))) AS today_holiday_name,\n    if(today_early = 1, 780, 960) AS close_min,\n    if(today_early = 1, 1020, 1200) AS after_hours_end,\n    (SELECT min(d) FROM (SELECT toDate(toTimeZone(now(), 'America/New_York')) + arrayJoin(range(1, 11)) AS d)\n      WHERE toDayOfWeek(d) <= 5\n        AND d NOT IN (SELECT date FROM global_markets.stocks_market_holidays WHERE status = 'closed')) AS next_sess_after_today,\n    toDayOfWeek(today_et) <= 5 AND today_full_holiday = 0 AS today_is_session\nSELECT\n    toString(today_et) AS date_checked,\n    formatDateTime(today_et, '%W') AS weekday,\n    formatDateTime(now_et, '%H:%i') AS time_checked_et,\n    multiIf(toDayOfWeek(today_et) >= 6, 'weekend',\n            today_full_holiday = 1, concat('holiday — ', today_holiday_name),\n            today_early = 1, concat('early close (1:00 pm) — ', today_holiday_name),\n            'normal weekday') AS todays_calendar,\n    multiIf(NOT today_is_session, 'CLOSED',\n            min_now < 240, 'CLOSED (overnight)',\n            min_now < 570, 'PREMARKET',\n            min_now < close_min, 'OPEN',\n            min_now < after_hours_end, 'AFTER-HOURS',\n            'CLOSED (overnight)') AS market_status,\n    toString(if(today_is_session AND min_now < close_min, today_et, next_sess_after_today)) AS next_regular_session,\n    dateDiff('day', today_et, if(today_is_session AND min_now < close_min, today_et, next_sess_after_today)) AS days_to_next_session","computed_at":"2026-08-25T13:00:01.470613+00:00","elapsed":0.054421954}