{"slug":"us-stock-market-hours-german-time","qid":"session_clock","label":"session_clock","post_title":"us-stock-market-hours-german-time","post_url":"/blog/us-stock-market-hours-german-time#q-session_clock","columns":["milestone","et_clock","utc_us_winter","german_cet","utc_us_summer","german_cest","et_minutes"],"rows":[{"milestone":"Premarket opens","et_clock":"04:00","utc_us_winter":"09:January","german_cet":"10:January","utc_us_summer":"08:July","german_cest":"10:July","et_minutes":240},{"milestone":"Regular session opens","et_clock":"09:30","utc_us_winter":"14:January","german_cet":"15:January","utc_us_summer":"13:July","german_cest":"15:July","et_minutes":570},{"milestone":"Half-day early close","et_clock":"13:00","utc_us_winter":"18:January","german_cet":"19:January","utc_us_summer":"17:July","german_cest":"19:July","et_minutes":780},{"milestone":"Regular session closes","et_clock":"16:00","utc_us_winter":"21:January","german_cet":"22:January","utc_us_summer":"20:July","german_cest":"22:July","et_minutes":960},{"milestone":"After-hours ends","et_clock":"20:00","utc_us_winter":"01:January","german_cet":"02:January","utc_us_summer":"00:July","german_cest":"02:July","et_minutes":1200}],"shape":"table","sql":"SELECT\n    tupleElement(m, 1)                                              AS milestone,\n    tupleElement(m, 2)                                              AS et_clock,\n    formatDateTime(toTimeZone(et_winter, 'UTC'), '%H:%M')           AS utc_us_winter,\n    formatDateTime(toTimeZone(et_winter, 'Europe/Berlin'), '%H:%M') AS german_cet,\n    formatDateTime(toTimeZone(et_summer, 'UTC'), '%H:%M')           AS utc_us_summer,\n    formatDateTime(toTimeZone(et_summer, 'Europe/Berlin'), '%H:%M') AS german_cest,\n    tupleElement(m, 3)                                              AS et_minutes\nFROM\n(\n    SELECT\n        m,\n        toDateTime(concat(toString(toYear(today())), '-01-15 ', tupleElement(m, 2), ':00'), 'America/New_York') AS et_winter,\n        toDateTime(concat(toString(toYear(today())), '-07-15 ', tupleElement(m, 2), ':00'), 'America/New_York') AS et_summer\n    FROM\n    (\n        SELECT arrayJoin([\n            ('Premarket opens',        '04:00', 240),\n            ('Regular session opens',  '09:30', 570),\n            ('Half-day early close',   '13:00', 780),\n            ('Regular session closes', '16:00', 960),\n            ('After-hours ends',       '20:00', 1200)\n        ]) AS m\n    )\n)\nORDER BY et_minutes","computed_at":"2026-09-26T15:27:19.842435+00:00","elapsed":0.021774648}