Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
GuerauFF
Helper II
Helper II

Formato de fecha

¡Hola!

Estoy teniendo algunos problemas con el formato de fecha... ¡Es una pesadilla!

Por lo tanto, lo que tengo es una columna donde tengo ambas fechas como "dd/mm/YYYY hh:mm:ss" y otras como "dd/mm/YYYY hh:mm:ss AM/PM".

Cuando cambio el formato de columna a fecha/hora no tengo ningún problema con el que está con el primer formato, pero las identidades de powerquery como el que están con el segundo formato. Algunas imágenes para ilustrarlo:

Date1.JPG

Date2.JPG

¿Alguien sabe cómo resolver esto? ¡Gracias!

1 ACCEPTED SOLUTION

Hola @GuerauFF ,

Pruebe el siguiente código:

if Text.End([DAte], 2) = "AM" or Text.End([DAte], 2) = "PM"
  then Text.PadStart(Text.AfterDelimiter(Text.BeforeDelimiter([DAte], "/", 1), "/", 0), 2, "0")
     & "/"
     & Text.PadStart(Text.BeforeDelimiter([DAte], "/", 0), 2, "0")
     & "/"
     & Text.AfterDelimiter([DAte], "/", 1)
  else Text.PadStart(Text.AfterDelimiter(Text.BeforeDelimiter([DAte], "/", 1), "/", 0), 2, "0")
     & "/"
     & Text.PadStart(Text.BeforeDelimiter([DAte], "/", 0), 2, "0")
     & "/"
     & Text.AfterDelimiter(Text.BeforeDelimiter([DAte], " ", 0), "/", 1)
     & " "
     & (if Number.FromText(Text.BeforeDelimiter(Text.AfterDelimiter([DAte], " ", 0), ":", 0)) < 12
      then Text.BeforeDelimiter(Text.AfterDelimiter([DAte], " ", 0), ":", 0)
      else Number.ToText(
        Number.FromText(Text.BeforeDelimiter(Text.AfterDelimiter([DAte], " ", 0), ":", 0)) - 12
      ))
     & ":"
     & Text.AfterDelimiter([DAte], ":", 0)
     & (if Number.FromText(Text.BeforeDelimiter(Text.AfterDelimiter([DAte], " ", 0), ":", 0)) < 12
      then " AM"
      else " PM")

Regards

Miguel Félix


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!

Check out my blog: Power BI em Português



View solution in original post

13 REPLIES 13
v-chuncz-msft
Community Support
Community Support

@GuerauFF

Puede consultar el siguiente mensaje.

https://community.powerbi.com/t5/Desktop/DataFormat-Error-We-couldn-t-parse-the-input-provided-as-a-...

Community Support Team _ Sam Zha
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
MFelix
Super User
Super User

Hola @GuerauFF,

El problema está relacionado con tener un formato diferente para los meses y el día, intente agregar la siguiente columna a la consulta y el formato como fecha y hora:

if   
Text.End([DAte],2 ) = "AM" or Text.End([DAte],2 ) = "PM" 
then 

Text.PadStart(
Text.AfterDelimiter( Text.BeforeDelimiter ([DAte],"/",1),"/",0),2,"0")
&
"/"
 & 
Text.PadStart( Text.BeforeDelimiter ([DAte],"/",0),2, "0")
&
"/"
&
Text.AfterDelimiter ([DAte],"/",1)

else

DateTime.From ([DAte])

Debería funcionar según lo esperado.


Regards

Miguel Félix


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!

Check out my blog: Power BI em Português



Hola @MFelix

Lo intenté de nuevo y está funcionando, supongo que estaba cometiendo un error al poner la variable correcta en la fórmula.

There's solo un problema a la izquierda, parece que it's trabajar para las fechas con las que estaba teniendo problemas antes, pero isn't de trabajo para los otros que tenía. Antes de cambiar el formato:

AbansData.JPG

Y después del cambio de formato:

PostData.JPG

¿Alguna idea de cómo podría hacer que funcione para ambos tipos de fecha?

¡Gracias por tu ayuda!

Guerau

Hola @GuerauFF ,

Pruebe el siguiente código:

if Text.End([DAte], 2) = "AM" or Text.End([DAte], 2) = "PM"
  then Text.PadStart(Text.AfterDelimiter(Text.BeforeDelimiter([DAte], "/", 1), "/", 0), 2, "0")
     & "/"
     & Text.PadStart(Text.BeforeDelimiter([DAte], "/", 0), 2, "0")
     & "/"
     & Text.AfterDelimiter([DAte], "/", 1)
  else Text.PadStart(Text.AfterDelimiter(Text.BeforeDelimiter([DAte], "/", 1), "/", 0), 2, "0")
     & "/"
     & Text.PadStart(Text.BeforeDelimiter([DAte], "/", 0), 2, "0")
     & "/"
     & Text.AfterDelimiter(Text.BeforeDelimiter([DAte], " ", 0), "/", 1)
     & " "
     & (if Number.FromText(Text.BeforeDelimiter(Text.AfterDelimiter([DAte], " ", 0), ":", 0)) < 12
      then Text.BeforeDelimiter(Text.AfterDelimiter([DAte], " ", 0), ":", 0)
      else Number.ToText(
        Number.FromText(Text.BeforeDelimiter(Text.AfterDelimiter([DAte], " ", 0), ":", 0)) - 12
      ))
     & ":"
     & Text.AfterDelimiter([DAte], ":", 0)
     & (if Number.FromText(Text.BeforeDelimiter(Text.AfterDelimiter([DAte], " ", 0), ":", 0)) < 12
      then " AM"
      else " PM")

Regards

Miguel Félix


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!

Check out my blog: Power BI em Português



Hey @MFelix !

Juro que será el último número. Esta mañana, cuando corrí la fórmula, pensé que funcionaba correctamente y me mudé a otras tareas, pero ahora, veo que todavía hay un problema.

En las filas que inicialmente tienen este formato: dd/mm/aaaa hh:mm:ss, de la fórmula estoy obteniendo este formato: mm/dd/aaaa hh:mm:ss AM/PM y debería estar obteniendo dd/mm/aaaa hh:mm:ss AM/PM. Supongo que sólo tengo que cambiar el orden de algunas de las filas en la fórmula, no estoy seguro de cuáles aunque...

¿Cómo sería la fórmula teniendo en cuenta este pequeño cambio?

¡Gracias!

¡¡¡Editar!!! No importa, lo tengo por mi cuenta. ¡Gracias de todos modos!

Hola @GuerauFF ,

¿Tiene filas sin AM/PM que tienen dd/mm/AAAA y otras que tienen mm/dd/aaaa? o todos tienen el dd/mm/aaaa?

En la pantalla que presente que no es legible.

Pruebe esta medida:

if Text.End([DAte], 2) = "AM" or Text.End([DAte], 2) = "PM"
  then Text.PadStart(Text.AfterDelimiter(Text.BeforeDelimiter([DAte], "/", 1), "/", 0), 2, "0")
     & "/"
     & Text.PadStart(Text.BeforeDelimiter([DAte], "/", 0), 2, "0")
     & "/"
     & Text.AfterDelimiter([DAte], "/", 1)
  else Text.PadStart(Text.AfterDelimiter(Text.BeforeDelimiter([DAte], "/", 1), "/", 0), 2, "0")
     & "/"
     & Text.AfterDelimiter(Text.BeforeDelimiter([DAte], " ", 0), "/", 1)
     & "/"
     & Text.PadStart(Text.BeforeDelimiter([DAte], "/", 0), 2, "0")
     & " "
     & (if Number.FromText(Text.BeforeDelimiter(Text.AfterDelimiter([DAte], " ", 0), ":", 0)) < 12
      then Text.BeforeDelimiter(Text.AfterDelimiter([DAte], " ", 0), ":", 0)
      else Number.ToText(
        Number.FromText(Text.BeforeDelimiter(Text.AfterDelimiter([DAte], " ", 0), ":", 0)) - 12
      ))
     & ":"
     & Text.AfterDelimiter([DAte], ":", 0)
     & (if Number.FromText(Text.BeforeDelimiter(Text.AfterDelimiter([DAte], " ", 0), ":", 0)) < 12
      then " AM"
      else " PM")

Regards

Miguel Félix


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!

Check out my blog: Power BI em Português



Fue mucho más fácil que eso, sólo tenía que intercambiar dos filas.

El código final es el siguiente:

















entonces "AM" else " PM"))

Gracias por toda su ayuda @MFelix !

¡Sí!

¡Funcionó perfectamente! Muchas gracias @MFelix ! ¡Impresionante!

¡Se asegurará de darte los mayores elogios! 🙂

Hola @GuerauFF ,

Debe usar la nueva columna como columna de fecha, por lo que debe cambiar el formato de la columna que acaba de crear y eliminar la columna inicial y, a continuación, cambiar el nombre de la nueva columna por el nombre de la anterior.


Regards

Miguel Félix


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!

Check out my blog: Power BI em Português



Hola @MFelix ,

Puedo hacerlo, pero no resuelve el problema. El problema que estoy teniendo es que con la fórmula inicial está funcionando correctamente para las fechas que terminan en PM/AM, pero me da el mensaje de error para los otros.

He intentado cambiar la última línea de la fórmula, poniendo en lugar de Datetime.From Text.Select pero tampoco funciona.

En resumen, creo que lo que tengo que hacer es adaptar la cláusula else de la fórmula que me diste para que las fechas en el formato dd/mm/aaaa hh:mm:ss se conviertan al formato dd/mm/aaaa hh:mm:ss PM/AM. Y una vez hecho esto podré formatear la nueva columna como fecha y hora y funcionará correctamente.

El problema es que no sé cómo cambiar la cláusula else así que lo hace...

¿Sabes a qué me refiero? Cualquier ayuda con la edición de la cláusula else sería apreciada!

Guerau

Hola @MFelix !

Gracias por la respuesta, lo he probado y no funciona aunque... me da un error.

Cuando dice agregarlo a la consulta, ¿quiere agregar la columna con PowerQuery o con el editor de consultas de PowerBI?

Captura.JPG

Necesito hacerlo desde Powerquery porque después estoy añadiendo esta consulta con algunos otros, y necesito que el formato de fecha esté bien en esa etapa, ese es el punto principal

¡Agradecería mucho que pudieras ayudarme!

Hola @GuerauFF ,

Esta fórmula se va a usar en el editor de consultas.

¿Qué quieres decir con PowerQuery? - Excel? ¿Power BI?

La fórmula funciona para ambos. ¿Cuál es el error que está recibiendo?


Regards

Miguel Félix


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!

Check out my blog: Power BI em Português



¡Hola, gracias por la respuesta!

Lo he probado sin embargo y no está funcionando, devuelve un error. Cuando diga agregar esta columna a la consulta, ¿debo hacerlo a través de PowerQuery Editor o a través del editor de consultas en PowerBI?

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.