{"slug":"us-daylight-saving-switch-brasilia-time","qid":"virada_marco","label":"virada_marco","post_title":"us-daylight-saving-switch-brasilia-time","post_url":"/blog/lang/pt/us-daylight-saving-switch-brasilia-time#q-virada_marco","columns":["session_date","abertura_brasilia","fechamento_brasilia","abertura_minuto_brasilia"],"rows":[{"session_date":"2025-03-03","abertura_brasilia":"11:30","fechamento_brasilia":"18:00","abertura_minuto_brasilia":690},{"session_date":"2025-03-04","abertura_brasilia":"11:30","fechamento_brasilia":"18:00","abertura_minuto_brasilia":690},{"session_date":"2025-03-05","abertura_brasilia":"11:30","fechamento_brasilia":"18:00","abertura_minuto_brasilia":690},{"session_date":"2025-03-06","abertura_brasilia":"11:30","fechamento_brasilia":"18:00","abertura_minuto_brasilia":690},{"session_date":"2025-03-07","abertura_brasilia":"11:30","fechamento_brasilia":"18:00","abertura_minuto_brasilia":690},{"session_date":"2025-03-10","abertura_brasilia":"10:30","fechamento_brasilia":"17:00","abertura_minuto_brasilia":630},{"session_date":"2025-03-11","abertura_brasilia":"10:30","fechamento_brasilia":"17:00","abertura_minuto_brasilia":630},{"session_date":"2025-03-12","abertura_brasilia":"10:30","fechamento_brasilia":"17:00","abertura_minuto_brasilia":630},{"session_date":"2025-03-13","abertura_brasilia":"10:30","fechamento_brasilia":"17:00","abertura_minuto_brasilia":630},{"session_date":"2025-03-14","abertura_brasilia":"10:30","fechamento_brasilia":"17:00","abertura_minuto_brasilia":630}],"shape":"series","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('2025-03-03 00:00:00', 'UTC')\n      AND window_start <  toDateTime('2025-03-15 00:00:00', 'UTC')\n)\nSELECT\n    toString(toDate(ny))                                                        AS session_date,\n    formatDateTime(minIf(bsb, et_minuto >= 570 AND et_minuto < 960), '%H:%i')   AS abertura_brasilia,\n    formatDateTime(maxIf(bsb, et_minuto >= 570 AND et_minuto < 960)\n                   + toIntervalMinute(1), '%H:%i')                              AS fechamento_brasilia,\n    toHour(minIf(bsb, et_minuto >= 570 AND et_minuto < 960)) * 60\n        + toMinute(minIf(bsb, et_minuto >= 570 AND et_minuto < 960))            AS abertura_minuto_brasilia\nFROM bars\nGROUP BY toDate(ny)\nHAVING countIf(et_minuto >= 570 AND et_minuto < 960) > 0\nORDER BY session_date","computed_at":"2026-10-03T15:29:37.137124+00:00","elapsed":0.003240674}