ansa_naz
Tengo el siguiente código M en el Editor de consultas de power BI:
let Source = Sql.Database("DB", "DB", [CommandTimeout=#duration(0, 1, 0, 0)]), dbo_Calls = Source{[Schema="dbo",Item="Calls"]}[Data], #"Changed Type" = Table.TransformColumnTypes(dbo_Calls,{{"Completion Date", type date}}), EndDate = Date.From(DateTime.FixedLocalNow()), StartDate = Date.AddDays(Date.AddMonths(EndDate,-6),1), #"Filtered Rows" = Table.SelectRows(dbo_Calls,each [Completion Date]>=StartDate and [Completion Date]<=EndDate) in #"Filtered Rows"
Sin embargo, esto da como resultado el siguiente error:
Expression.Error: We cannot apply operator < to types Date and DateTime. Details: Operator=< Left=26/12/2018 Right=16/05/2017 00:00:00
¿Alguna idea de cómo puedo evitar esto?
muchas gracias por toda la ayuda
Gordonlilj
Hola,
Puede cambiar la columna de fecha y hora a la fecha o al revés.
O podría intentar agregar DateTime.From() a las columnas de fecha.
No sé cuál es la columna de fecha y hora, así que agregué la función a todas ellas.
#"Filtered Rows" = Table.SelectRows(dbo_ANSAPBICalls,each DateTime.From([Completion Date])>=DateTime.From(StartDate) and DateTime.From([Completion Date])<=DateTime.From(EndDate))
tex628
Está comparando el formato de fecha con el formato de fecha y hora. ¡Cambie el formato de fecha y hora a fecha en su fecha de inicio y finalización antes de la declaración de filtro y debería funcionar bien!
/J
ansa_naz
En respuesta a tex628
Está arreglado ahora. Cambié todas las funciones de fecha a DateTime. También modifiqué el paso Filtered Rows para que usara SelectRows del paso #ChangedType, no de la fuente de datos original:
let Source = Sql.Database("DB", "DB", [CommandTimeout=#duration(0, 1, 0, 0)]), dbo_Calls = Source{[Schema="dbo",Item="Calls"]}[Data], #"Changed Type" = Table.TransformColumnTypes(dbo_Calls,{{"Completion Date", type date}}), EndDate = Date.From(DateTime.FixedLocalNow()), StartDate = Date.AddDays(Date.AddMonths(EndDate,-6),1), #"Filtered Rows" = Table.SelectRows(#"Changed Type",each DateTime.From([Completion Date])>=DateTime.From(StartDate) and DateTime.From([Completion Date])<=DateTime.From(EndDate)) in #"Filtered Rows"
Eso ha hecho el truco, ¡salud por toda la ayuda!
tex628
Está comparando el formato de fecha con el formato de fecha y hora. ¡Cambie el formato de fecha y hora a fecha en su fecha de inicio y finalización antes de la declaración de filtro y debería funcionar bien!
/J
ansa_naz
En respuesta a tex628
Gracias a los dos
He modificado mi código M a continuación:
EndDate = Date.From(Date.FixedLocalNow()), StartDate = Date.AddDays(Date.AddMonths(EndDate,-6),1), #"Filtered Rows" = Table.SelectRows(dbo_Calls,each Date.From([Completion Date])>=Date.From(StartDate) and Date.From([Completion Date])<=Date.From(EndDate))
Sin embargo, ahora obtengo el siguiente error:
Expression.Error: The name 'Date.FixedLocalNow' wasn't recognized. Make sure it's spelled correctly.
¿Estoy haciendo algo tonto aquí?
Gordonlilj
En respuesta a ansa_naz
No hay una función llamada Date.FixedLocalNow(), por lo que aparece un error. DateTime.FixedLocalNow() es el nombre de esa función.
tex628
En respuesta a ansa_naz
Realmente no puedo decir qué está mal, ¿puedes publicar el código de consulta completo?
ansa_naz
En respuesta a tex628
Está arreglado ahora. Cambié todas las funciones de fecha a DateTime. También modifiqué el paso Filtered Rows para que usara SelectRows del paso #ChangedType, no de la fuente de datos original:
let Source = Sql.Database("DB", "DB", [CommandTimeout=#duration(0, 1, 0, 0)]), dbo_Calls = Source{[Schema="dbo",Item="Calls"]}[Data], #"Changed Type" = Table.TransformColumnTypes(dbo_Calls,{{"Completion Date", type date}}), EndDate = Date.From(DateTime.FixedLocalNow()), StartDate = Date.AddDays(Date.AddMonths(EndDate,-6),1), #"Filtered Rows" = Table.SelectRows(#"Changed Type",each DateTime.From([Completion Date])>=DateTime.From(StartDate) and DateTime.From([Completion Date])<=DateTime.From(EndDate)) in #"Filtered Rows"
Eso ha hecho el truco, ¡salud por toda la ayuda!
Gordonlilj
Hola,
Puede cambiar la columna de fecha y hora a la fecha o al revés.
O podría intentar agregar DateTime.From() a las columnas de fecha.
No sé cuál es la columna de fecha y hora, así que agregué la función a todas ellas.
#"Filtered Rows" = Table.SelectRows(dbo_ANSAPBICalls,each DateTime.From([Completion Date])>=DateTime.From(StartDate) and DateTime.From([Completion Date])<=DateTime.From(EndDate))