Forum Discussion

GuerauFF's avatar
GuerauFF
Icon for Helper II rankHelper II
6 years ago
Solved

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!

  • MFelix's avatar
    MFelix
    6 years ago

    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")

13 Replies

  • 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.

    • GuerauFF's avatar
      GuerauFF
      Icon for Helper II rankHelper II

      ¡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?

    • GuerauFF's avatar
      GuerauFF
      Icon for Helper II rankHelper II

      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!

      • MFelix's avatar
        MFelix
        Icon for Super User rankSuper User

        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?

    • GuerauFF's avatar
      GuerauFF
      Icon for Helper II rankHelper II

      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

      • MFelix's avatar
        MFelix
        Icon for Super User rankSuper User

        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.