{"slug":"us-daylight-saving-switch-brasilia-time","qid":"sessoes_da_virada","label":"sessoes_da_virada","post_title":"us-daylight-saving-switch-brasilia-time","post_url":"/blog/lang/pt/us-daylight-saving-switch-brasilia-time#q-sessoes_da_virada","columns":["sessao_rotulo","pre_market_inicio_bsb","abertura_regular_bsb","fechamento_regular_bsb","after_market_fim_bsb","pre_market_minuto_bsb","after_market_minuto_bsb"],"rows":[{"sessao_rotulo":"01/11/2024 verão","pre_market_inicio_bsb":"05:00","abertura_regular_bsb":"10:30","fechamento_regular_bsb":"17:00","after_market_fim_bsb":"21:00","pre_market_minuto_bsb":300,"after_market_minuto_bsb":1260},{"sessao_rotulo":"04/11/2024 padrão","pre_market_inicio_bsb":"06:00","abertura_regular_bsb":"11:30","fechamento_regular_bsb":"18:00","after_market_fim_bsb":"22:00","pre_market_minuto_bsb":360,"after_market_minuto_bsb":1320},{"sessao_rotulo":"31/10/2025 verão","pre_market_inicio_bsb":"05:00","abertura_regular_bsb":"10:30","fechamento_regular_bsb":"17:00","after_market_fim_bsb":"21:00","pre_market_minuto_bsb":300,"after_market_minuto_bsb":1260},{"sessao_rotulo":"03/11/2025 padrão","pre_market_inicio_bsb":"06:00","abertura_regular_bsb":"11:30","fechamento_regular_bsb":"18:00","after_market_fim_bsb":"22:00","pre_market_minuto_bsb":360,"after_market_minuto_bsb":1320}],"shape":"table","sql":"WITH bars AS\n(\n    SELECT\n        toTimeZone(window_start, 'America/New_York')  AS ny,\n        toTimeZone(window_start, 'America/Sao_Paulo') AS bsb,\n        toHour(toTimeZone(window_start, 'America/New_York')) * 60\n            + toMinute(toTimeZone(window_start, 'America/New_York')) AS et_minuto\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker = 'SPY'\n      AND window_start >= toDateTime('2024-11-01 00:00:00', 'UTC')\n      AND window_start <  toDateTime('2025-11-04 06:00:00', 'UTC')\n      AND toDate(toTimeZone(window_start, 'America/New_York'))\n          IN ('2024-11-01', '2024-11-04', '2025-10-31', '2025-11-03')\n)\nSELECT\n    concat(\n        formatDateTime(toDate(ny), '%d/%m/%Y'), ' ',\n        if(any(timeZoneOffset(ny)) = -14400, 'verão', 'padrão')\n    )                                                                            AS sessao_rotulo,\n    formatDateTime(min(bsb), '%H:%i')                                            AS pre_market_inicio_bsb,\n    formatDateTime(minIf(bsb, et_minuto >= 570 AND et_minuto < 960), '%H:%i')    AS abertura_regular_bsb,\n    formatDateTime(maxIf(bsb, et_minuto >= 570 AND et_minuto < 960)\n                   + toIntervalMinute(1), '%H:%i')                               AS fechamento_regular_bsb,\n    formatDateTime(max(bsb) + toIntervalMinute(1), '%H:%i')                      AS after_market_fim_bsb,\n    toHour(min(bsb)) * 60 + toMinute(min(bsb))                                   AS pre_market_minuto_bsb,\n    toHour(max(bsb) + toIntervalMinute(1)) * 60\n        + toMinute(max(bsb) + toIntervalMinute(1))                               AS after_market_minuto_bsb\nFROM bars\nWHERE et_minuto >= 240 AND et_minuto < 1200\nGROUP BY toDate(ny)\nHAVING countIf(et_minuto >= 570 AND et_minuto < 960) > 0\nORDER BY toDate(ny)","computed_at":"2026-10-03T15:29:36.963796+00:00","elapsed":0.004191427}