The ultimate Fabric, Power BI, SQL, and AI community-led learning event. Save €200 with code FABCOMM.
Get registeredEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
El servicio Power BI convierte automáticamente la fecha PST a UTC: ¿cómo mantener la fecha DB como PST?
Hola a todos,
Me enfrento a un problema de zona horaria y agradecería su ayuda.
Estoy extrayendo datos en Power BI desde una base de datos de SQL Server. La columna [TXN_DATE] de la base de datos se almacena en la hora del Pacífico (PST/PDT). Lo confirmé con el equipo de DB, y también lo verifiqué a partir de los valores de datos reales: definitivamente no es UTC.
mis clientes operan en la zona horaria PST y quiero que la fecha y hora aparezca en la hora local del Pacífico exactamente como está almacenada en la base de datos.
Sin embargo, después de que:
Cargue los datos en Power BI Desktop (la vista Transformar datos muestra [TXN_DATE] como UTC);
Publique el informe en Power BI Service,
… los valores de fecha y hora parecen cambiar en 7 u 8 horas, dependiendo del horario de verano, como si Power BI los interpretara como UTC y los convirtiera a la hora local del explorador o la máquina.
¿Cómo puedo evitar que Power BI Service convierta automáticamente la fecha y hora de PST a UTC o a la hora local del explorador?
¿Hay alguna manera de indicar explícitamente a Power BI que mi columna de fecha y hora ya está en PST y que debe mantenerse así?
Si Power BI siempre trata la fecha y la hora como UTC de forma predeterminada, ¿cuál es el procedimiento recomendado para conservar PST en los informes de forma coherente entre el escritorio y el servicio?
¡Gracias de antemano por su orientación!
Hola @manoj_0911 ,
Gracias por ponerse en contacto con el foro de la comunidad de Microsoft Fabric.
Pruebe estos pasos para resolver su problema:
Carga en Power BI Desktop
Cree una nueva tabla en Power BI o conéctese a su origen de datos SQL.
Abra la opción Transformar datos para acceder al Editor de Power Query.
Aplicar conversión UTC
En Power Query, vaya a Agregar columna > columna personalizada:
DateTimeZone.SwitchZone(DateTimeZone.From([TXN_DATE]), -8)
Cambie el nombre de esta nueva columna a TXN_DATE_UTC. Este enfoque aplica el desplazamiento PST. Para el horario de verano (marzo-noviembre), use -7 o -8.
Antes de publicarlo, compruebe si la columna está escrita correctamente en Power Query > tipo de datos para datetimezone.
Prueba en Power BI Service
Publique el informe en Power BI Service.
El campo TXN_DATE_UTC se mostrará igual que en el escritorio, sin ningún ajuste UTC adicional.
Dado que ya se ha ajustado a UTC, Power BI Service mantendrá la fecha coherente en todos los entornos.
Encuentre el archivo .pbix adjunto para su referencia.
Si la respuesta ha abordado su consulta, acéptela como una solución y dé un 'Felicitaciones' para que otros miembros puedan encontrarla fácilmente
Saludos
Sreeteja.
Equipo de apoyo a la comunidad
Hola @manoj_0911
¿Puedo preguntarle si ha resuelto este problema? Si es así, marque la respuesta útil y acéptela como la solución y dé un 'Felicitaciones'. Esto será útil para que otros miembros de la comunidad que tengan problemas similares lo resuelvan más rápido.
Espero que los detalles anteriores lo ayuden a solucionar el problema. Si aún tienes alguna pregunta o necesitas más ayuda, no dudes en ponerte en contacto con nosotros. Siempre estamos aquí para apoyarte
Espero que la información proporcionada anteriormente lo ayude a resolver el problema. Si tiene alguna pregunta o inquietud adicional, no dude en contactarnos. Estamos aquí para apoyarlo y estaremos encantados de ayudarlo con cualquier ayuda adicional que pueda necesitar.
Hola @manoj_0911 - agregando algunos puntos, Power BI asume que los valores de fecha y hora están en UTC y los convierte en función de la hora local del servicio o del explorador.
Para retener:
en el editor de consultas de energía, DateTime.AddZone([TXN_DATE], -8)
Use la nueva columna con tipo DateTimeZone en objetos visuales y cálculos,Evite usar la columna original que Power BI interpreta como UTC. Espero que esto ayude.
Enlaces de referencia:
Funciones DateTimeZone - PowerQuery M | Microsoft Learn
Hola @manoj_0911 Power BI supone que los valores de fecha y hora están en UTC, lo que lleva a la conversión automática. Para conservar PST, transforme la fecha y hora en Power Query mediante DateTime.AddZone([TXN_DATE], -8) para la hora estándar o ajuste dinámicamente para DST. Use el tipo DateTimeZone para evitar más ajustes. Asegúrese de que los objetos visuales usen explícitamente la columna transformada para mantener la coherencia entre el escritorio y el servicio.
Hola @manoj_0911, he proporcionado la respuesta a tu pregunta en diferentes publicaciones. Por favor, consulte este https://community.fabric.microsoft.com/t5/Desktop/Need-Help-with-Reliable-UTC-to-PST-with-Daylight-S...
Aquí está el código M
let
Source = Sql.Database("cxdtps1-je74ecv6apb5z.pointelcloud.com,6958", "CXI_SCG_DEV"),
dbo_DATE_TIME_V = Source{[Schema="dbo",Item="DATE_TIME_V"]}[Data],
AddPacificTime = Table.AddColumn(#"Renamed Columns", "PACIFIC_TIME", each
let
datetime = DateTimeZone.From(DateTime.AddZone([TXN_DATE], 0)), // Assuming this as UTC Date
date = DateTime.Date(datetime),
time = DateTime.Time(datetime),
year = Date.Year(date),
// DST Begins on Second Sunday of March (UTC-8 to UTC-7)
secondSundayOfMarch = Date.StartOfWeek(#date(year, 3, 14), Day.Sunday),
// DST Ends on First Sunday of November (UTC-7 to UTC-8)
firstSundayOfNovember = Date.StartOfWeek(#date(year, 11, 7), Day.Sunday),
isDST =
(date = secondSundayOfMarch and time >= #time(2, 0, 0)) or
(date > secondSundayOfMarch and date < firstSundayOfNovember) or
(date = firstSundayOfNovember and time < #time(2, 0, 0)),
DynamicTimeZone = if isDST then -7 else -8,
pacificTime = DateTimeZone.SwitchZone(datetime, DynamicTimeZone)
in
pacificTime
),
#"Changed Type1" = Table.TransformColumnTypes(AddPacificTime,{{"PACIFIC_TIME", type datetime}})
in
#"Changed Type1"
Gracias
Si esta solución le resultó útil, considere darle un Me gusta👍 y marcarlo como Solución✔ aceptada. Esto ayuda a mejorar la visibilidad para otras personas que pueden estar encontrando o enfrentando las mismas preguntas/problemas.