March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early bird discount ends December 31.
Register NowBe one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now
Buenos días
He encontrado toneladas de publicaciones sobre este problema exacto, desearía que Power BI lo agregara como una entrada normal.
Sin embargo, no he encontrado una solución adecuada que funcione para mí.
Estoy tratando de convertir RefreshTime a CEST / CET dependiendo del horario de verano.
¿Alguna ayuda?
Posibles enlaces útiles que no pude conseguir trabajar:
DateTimeZone.SwitchZone - PowerQuery M | Microsoft Learn
DateTimeZone.ToLocal: PowerQuery M | Microsoft Learn
Agregué una nueva tabla junto con mis otras fuentes de datos. Solo tiene un registro de la hora local. Marque eso como Tabla de fechas y las otras horas de fecha siguen en consecuencia.
let
Source = Json.Document(Web.Contents("http://worldtimeapi.org/api/timezone/Australia/Adelaide")),
#"Converted to Table" = Table.FromRecords({Source}),
#"Changed Type" = Table.TransformColumnTypes(#"Converted to Table",{{"abbreviation", type text}, {"client_ip", type text}, {"datetime", type datetimezone}, {"day_of_week", Int64.Type}, {"day_of_year", Int64.Type}, {"dst", type logical}, {"dst_from", type datetime}, {"dst_offset", Int64.Type}, {"dst_until", type datetime}, {"raw_offset", Int64.Type}, {"timezone", type text}, {"unixtime", Int64.Type}, {"utc_datetime", type datetime}, {"utc_offset", type text}, {"week_number", Int64.Type}})
in
#"Changed Type"
"
Hi, @DvdH ;
Para sus necesidades específicas, tal vez esta función personalizada podría funcionar:
firstSundayOfNovember = Date.StartOfWeek(#date(Date.Year(date), 11, 7), Day.Sunday),
SecondSundayOfMarch = Date.StartOfWeek(#date(Date.Year(date), 3, 14), Day.Sunday),
isSummerTime = (date = SecondSundayOfMarch and time >= #time(1,0,0))
or
(date > SecondSundayOfMarch and date < firstSundayOfNovember)
or
(date = firstSundayOfNovember and time >= #time(1,0,0)),
timeZone = (7 - Number.From(isSummerTime))*-1,
Saludos
Equipo de Apoyo a la Comunidad _ Yalan Wu
Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
¡Eh! Gracias por la respuesta. ¿Dónde/Cómo implementaría esto? Revisé los enlaces incluso antes de hacer esta publicación, pero parece que no puedo hacer que funcione.
Según su declaración, creo que desea convertir la fecha y hora en Power BI a la fecha y hora en su zona horaria local. Le sugiero que consulte este código. Agregue este código al Editor avanzado en el Editor de Power Query. Si esta lógica de cálculo no satisface su solicitud, puede cambiar la lógica de cálculo en función de sus requisitos.
(datetimecolumn as datetime) =>
let
date = DateTime.Date(datetimecolumn),
time = DateTime.Time(datetimecolumn),
firstSundayOfNovember = Date.StartOfWeek(#date(Date.Year(date), 11, 7), Day.Sunday),
SecondSundayOfMarch = Date.StartOfWeek(#date(Date.Year(date), 3, 14), Day.Sunday),
isSummerTime = (date = SecondSundayOfMarch and time >= #time(1,0,0))
or
(date > SecondSundayOfMarch and date < firstSundayOfNovember)
or
(date = firstSundayOfNovember and time >= #time(1,0,0)),
timeZone = (7 - Number.From(isSummerTime))*-1,
MDT =
DateTime.From(date)
+ #duration(0,Time.Hour(time),Time.Minute(time),Time.Second(time))
+ #duration(0, timeZone, 0, 0)
in
MDT
A continuación, invoque esta consulta con la tabla.
El resultado es el siguiente.
Saludos
Rico Zhou
Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Perdón por las respuestas tardías. Esto parece funcionar, pero no para mi tabla actual.
Tengo una tabla que es de la corriente (no tiene en cuenta el horario de verano)
Parece que no puedo pegar la función aquí? ¿Alguna ayuda? Funcionó para una relación diferente mía con datos manuales.
= #table(type table[#"CET"=datetime],{{DateTimeZone.RemoveZone(DateTimeZone.SwitchZone(DateTimeZone.UtcNow(),1))}})
Código de la tabla por cierto
Sí, encontré como 100 enlaces sobre esto, pero realmente necesito algo de apoyo para usar adecuadamente las consultas.
Más información Encontré idontknow cómo convertir / importar en mi propia relación.
//create one entry for each year that exists in the dataset if Record.Field(DateTimeZone.ToRecord([datetimeUTC]),"Year") = 2018 then //set the start/end of daylight savings for that year. // (first number is the start, second is the end) //this is in UTC time in the format of MMDDHH if [MonthDayHour] >= 31109 and [MonthDayHour] < 110408 //set the UTC offset if daylight savings is active then DateTimeZone.SwitchZone([datetimeUTC],-6) //set the UTC offset if daylight savings is not active else DateTimeZone.SwitchZone([datetimeUTC],-7) else if Record.Field(DateTimeZone.ToRecord([datetimeUTC]),"Year") = 2019 then if [MonthDayHour] >= 31009 and [MonthDayHour] < 110308 then DateTimeZone.SwitchZone([datetimeUTC],-6) else DateTimeZone.SwitchZone([datetimeUTC],-7) else if Record.Field(DateTimeZone.ToRecord([datetimeUTC]),"Year") = 2020 then if [MonthDayHour] >= 30809 and [MonthDayHour] < 110108 then DateTimeZone.SwitchZone([datetimeUTC],-6) else DateTimeZone.SwitchZone([datetimeUTC],-7) else if Record.Field(DateTimeZone.ToRecord([datetimeUTC]),"Year") = 2021 then if [MonthDayHour] >= 31409 and [MonthDayHour] < 110708 then DateTimeZone.SwitchZone([datetimeUTC],-6) else DateTimeZone.SwitchZone([datetimeUTC],-7) //set the default if no year is defined else DateTimeZone.SwitchZone([datetimeUTC],-7)
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.
Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.