Forum Discussion
DMV MDSCHEMA_CUBES
- 2 years ago
@lbendlin esto es lo mejor que se me ocurrió, avísame si tienes algo mejor
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMtQ31DcyMDJRMDSyMjAAIgVHX6XYWAA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Column1 = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type datetimezone}}), #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each DateTimeZone.ToLocal([Column1])), #"Changed Type1" = Table.TransformColumnTypes(#"Added Custom",{{"Custom", type datetimezone}}) in #"Changed Type1" - 2 years ago
Hay una manera de convertir la marca de tiempo utc a la configuración regional del cliente.
$SYSTEM. MDSCHEMA_CUBES devuelve la marca de tiempo en UTC, ya que el servidor PBI está en UTC. El servidor de análisis tampoco tiene ninguna función de desplazamiento de servidor incorporada en DAX / MDX / DMV (estaría muy feliz de que se demostrara que estoy equivocado). Por lo tanto, no hay forma de utilizar ninguna función SSAS para convertir la zona horaria del servidor en una zona horaria preferida COMO MIGHTY SQL.
El primer paso es crear un datamart, incluso si no hay datos ingeridos en él. El propósito de este datamart es poder aprovechar el servidor SQL que viene con él, ya que SQL Server tiene funciones TIMEZONE integradas. Así que en mi caso lo haría así
let col = [dateTime] yr = Text.From(Date.Year(col)), month = Text.End("0"&Text.From(Date.Month(col)),2), day = Text.End("0"&Text.From(Date.Day(col)),2), hour = Text.End("0"&Text.From(Time.Hour(col)),2), minute = Text.End("0"&Text.From(Time.Minute(col)),2), second = Text.From(Time.Second(col)), val = yr&"-"&month&"-"&day&" "&hour&":"&minute&":"&second // 2024-05-31 17:07:41.373 // could I have avoided generating val in PQ? yes, if DMV had support for CAST/CONVERT /* BUT The query engine for DMVs is the Data Mining parser. The DMV query syntax is based on the SELECT (DMX) statement. Although DMV query syntax is based on a SQL SELECT statement, it does not support the full syntax of a SELECT statement. Notably, JOIN, GROUP BY, LIKE, CAST, and CONVERT are not supported.*/ /* hence, PQ is required to generate val */ in Sql.Database("server.datamart.fabric.microsoft.com", "db", [Query="select CONVERT(DATETIME,convert(datetime,'"&Text.From(val)&"') AT TIME ZONE 'UTC' AT TIME ZONE 'Eastern Standard Time') as t"])[t]{0}Y esto también se verifica en el servidor
El servicio Power BI se ejecuta en UTC. Basa todos tus informes en él también.
Estoy bastante seguro de que ni siquiera estás en EST, sino en EDT.
- Syndicate_Admin2 years ago
Administrator
@lbendlin gr8 thnx, ¿sabes cómo puedo convertir este tinestamp a ttimestamp del cliente?
- Syndicate_Admin2 years ago
Administrator
Tú no. Deje que la configuración regional del explorador del cliente lo haga por usted.
- Syndicate_Admin2 years ago
Administrator
@lbendlin Lo siento, no lo entiendo. Esto es lo que estoy recibiendo actualmente, que es UTC. ¿Cómo permito que la configuración local del navegador la convierta a EDT?