{"slug":"us-market-hours-and-daylight-saving","qid":"city_open_times","label":"The 9:30 New York open in eight cities: US summer clock against US winter clock, 2026","post_title":"US Market Hours and Daylight Saving Time","post_url":"/blog/us-market-hours-and-daylight-saving#q-city_open_times","columns":["city","local_open_us_summer","local_open_us_winter","hours_ahead_us_summer","hours_ahead_us_winter"],"rows":[{"city":"Sao Paulo","local_open_us_summer":"10:30","local_open_us_winter":"11:30","hours_ahead_us_summer":1,"hours_ahead_us_winter":2},{"city":"London","local_open_us_summer":"14:30","local_open_us_winter":"14:30","hours_ahead_us_summer":5,"hours_ahead_us_winter":5},{"city":"Frankfurt","local_open_us_summer":"15:30","local_open_us_winter":"15:30","hours_ahead_us_summer":6,"hours_ahead_us_winter":6},{"city":"Dubai","local_open_us_summer":"17:30","local_open_us_winter":"18:30","hours_ahead_us_summer":8,"hours_ahead_us_winter":9},{"city":"Mumbai","local_open_us_summer":"19:00","local_open_us_winter":"20:00","hours_ahead_us_summer":9.5,"hours_ahead_us_winter":10.5},{"city":"Singapore","local_open_us_summer":"21:30","local_open_us_winter":"22:30","hours_ahead_us_summer":12,"hours_ahead_us_winter":13},{"city":"Tokyo","local_open_us_summer":"22:30","local_open_us_winter":"23:30","hours_ahead_us_summer":13,"hours_ahead_us_winter":14},{"city":"Sydney","local_open_us_summer":"23:30","local_open_us_winter":"01:30","hours_ahead_us_summer":14,"hours_ahead_us_winter":16}],"shape":"table","sql":"WITH anchors AS (\n    SELECT maxIf(window_start, toMonth(toTimeZone(window_start, 'America/New_York')) = 6) AS summer,\n           maxIf(window_start, toMonth(toTimeZone(window_start, 'America/New_York')) = 1) AS winter\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker = 'SPY'\n      AND toYear(toTimeZone(window_start, 'America/New_York')) = 2026\n      AND toMonth(toTimeZone(window_start, 'America/New_York')) IN (1, 6)\n      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n           + toMinute(toTimeZone(window_start, 'America/New_York'))) = 570\n),\nlocal_opens AS (\n    SELECT arrayJoin([\n        ('Sao Paulo', toHour(toTimeZone(summer, 'America/Sao_Paulo')) * 60 + toMinute(toTimeZone(summer, 'America/Sao_Paulo')), toHour(toTimeZone(winter, 'America/Sao_Paulo')) * 60 + toMinute(toTimeZone(winter, 'America/Sao_Paulo'))),\n        ('London', toHour(toTimeZone(summer, 'Europe/London')) * 60 + toMinute(toTimeZone(summer, 'Europe/London')), toHour(toTimeZone(winter, 'Europe/London')) * 60 + toMinute(toTimeZone(winter, 'Europe/London'))),\n        ('Frankfurt', toHour(toTimeZone(summer, 'Europe/Berlin')) * 60 + toMinute(toTimeZone(summer, 'Europe/Berlin')), toHour(toTimeZone(winter, 'Europe/Berlin')) * 60 + toMinute(toTimeZone(winter, 'Europe/Berlin'))),\n        ('Dubai', toHour(toTimeZone(summer, 'Asia/Dubai')) * 60 + toMinute(toTimeZone(summer, 'Asia/Dubai')), toHour(toTimeZone(winter, 'Asia/Dubai')) * 60 + toMinute(toTimeZone(winter, 'Asia/Dubai'))),\n        ('Mumbai', toHour(toTimeZone(summer, 'Asia/Kolkata')) * 60 + toMinute(toTimeZone(summer, 'Asia/Kolkata')), toHour(toTimeZone(winter, 'Asia/Kolkata')) * 60 + toMinute(toTimeZone(winter, 'Asia/Kolkata'))),\n        ('Singapore', toHour(toTimeZone(summer, 'Asia/Singapore')) * 60 + toMinute(toTimeZone(summer, 'Asia/Singapore')), toHour(toTimeZone(winter, 'Asia/Singapore')) * 60 + toMinute(toTimeZone(winter, 'Asia/Singapore'))),\n        ('Tokyo', toHour(toTimeZone(summer, 'Asia/Tokyo')) * 60 + toMinute(toTimeZone(summer, 'Asia/Tokyo')), toHour(toTimeZone(winter, 'Asia/Tokyo')) * 60 + toMinute(toTimeZone(winter, 'Asia/Tokyo'))),\n        ('Sydney', toHour(toTimeZone(summer, 'Australia/Sydney')) * 60 + toMinute(toTimeZone(summer, 'Australia/Sydney')), toHour(toTimeZone(winter, 'Australia/Sydney')) * 60 + toMinute(toTimeZone(winter, 'Australia/Sydney')))\n    ]) AS city_open\n    FROM anchors\n)\nSELECT tupleElement(city_open, 1) AS city,\n       formatDateTime(toDateTime(tupleElement(city_open, 2) * 60, 'UTC'), '%H:%i') AS local_open_us_summer,\n       formatDateTime(toDateTime(tupleElement(city_open, 3) * 60, 'UTC'), '%H:%i') AS local_open_us_winter,\n       round(((tupleElement(city_open, 2) + 1440 - 570) % 1440) / 60, 1) AS hours_ahead_us_summer,\n       round(((tupleElement(city_open, 3) + 1440 - 570) % 1440) / 60, 1) AS hours_ahead_us_winter\nFROM local_opens\nORDER BY hours_ahead_us_summer","computed_at":"2026-08-04T14:37:37.521051+00:00","elapsed":0.191406428}