{"slug":"us-stock-market-hours-london-time","qid":"sessions_london","label":"sessions_london","post_title":"us-stock-market-hours-london-time","post_url":"/blog/us-stock-market-hours-london-time#q-sessions_london","columns":["segment","new_york_et","london_summer_bst","london_winter_gmt","london_four_hour_weeks"],"rows":[{"segment":"Pre-market","new_york_et":"04:00 to 09:30 ET","london_summer_bst":"09:00 to 14:30","london_winter_gmt":"09:00 to 14:30","london_four_hour_weeks":"08:00 to 13:30"},{"segment":"Regular session","new_york_et":"09:30 to 16:00 ET","london_summer_bst":"14:30 to 21:00","london_winter_gmt":"14:30 to 21:00","london_four_hour_weeks":"13:30 to 20:00"},{"segment":"Early close (half day)","new_york_et":"09:30 to 13:00 ET","london_summer_bst":"14:30 to 18:00","london_winter_gmt":"14:30 to 18:00","london_four_hour_weeks":"13:30 to 17:00"},{"segment":"After-hours","new_york_et":"16:00 to 20:00 ET","london_summer_bst":"21:00 to 01:00","london_winter_gmt":"21:00 to 01:00","london_four_hour_weeks":"20:00 to 00:00"}],"shape":"table","sql":"WITH\n    '2026-07-15' AS summer_day,\n    '2026-01-15' AS winter_day,\n    '2026-03-16' AS gap_day\nSELECT\n    segment,\n    concat(et_start, ' to ', et_end, ' ET') AS new_york_et,\n    concat(formatDateTime(toTimeZone(toDateTime(concat(summer_day, ' ', et_start, ':00'), 'America/New_York'), 'Europe/London'), '%H:%i'),\n           ' to ',\n           formatDateTime(toTimeZone(toDateTime(concat(summer_day, ' ', et_end, ':00'), 'America/New_York'), 'Europe/London'), '%H:%i')) AS london_summer_bst,\n    concat(formatDateTime(toTimeZone(toDateTime(concat(winter_day, ' ', et_start, ':00'), 'America/New_York'), 'Europe/London'), '%H:%i'),\n           ' to ',\n           formatDateTime(toTimeZone(toDateTime(concat(winter_day, ' ', et_end, ':00'), 'America/New_York'), 'Europe/London'), '%H:%i')) AS london_winter_gmt,\n    concat(formatDateTime(toTimeZone(toDateTime(concat(gap_day, ' ', et_start, ':00'), 'America/New_York'), 'Europe/London'), '%H:%i'),\n           ' to ',\n           formatDateTime(toTimeZone(toDateTime(concat(gap_day, ' ', et_end, ':00'), 'America/New_York'), 'Europe/London'), '%H:%i')) AS london_four_hour_weeks\nFROM\n(\n    SELECT\n        i,\n        arrayElement(['Pre-market', 'Regular session', 'Early close (half day)', 'After-hours'], i) AS segment,\n        arrayElement(['04:00', '09:30', '09:30', '16:00'], i)                                       AS et_start,\n        arrayElement(['09:30', '16:00', '13:00', '20:00'], i)                                       AS et_end\n    FROM\n    (\n        SELECT arrayJoin([1, 2, 3, 4]) AS i\n    )\n)\nORDER BY i","computed_at":"2026-09-20T15:09:33.870274+00:00","elapsed":0.024127533}