Trabajar con rangos de hora

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • jtristan
    Senior Member
    • oct
    • 240

    #1

    Trabajar con rangos de hora

    Hola,

    ¿hay alguna función que me permita teniendo una fecha de inicio y otra de fin, saber si una tercera que le paso está dentro de esas dos?.
    Por ejemplo, si tengo el turno uno que va desde las 22:00:00 hasta las 06:00:00 y quiero saber si la hora 23:00:05 está incluido o no.

    Muchas gracias.
    Un saludo.
  • Chan
    Member
    • jul
    • 70

    #2
    no se si existe..... sino, siempre puedes crearte un include con un form que te haga la comprobación y añades ese include a tus programas

    if fecha_inicio <= fecha_variable y fecha variable <= fecha_fin
    dentro_rango = si
    else
    dentro_rango = no
    endif




    Originalmente publicado por jtristan
    Hola,

    ¿hay alguna función que me permita teniendo una fecha de inicio y otra de fin, saber si una tercera que le paso está dentro de esas dos?.
    Por ejemplo, si tengo el turno uno que va desde las 22:00:00 hasta las 06:00:00 y quiero saber si la hora 23:00:05 está incluido o no.

    Muchas gracias.
    Un saludo.

    Comentario

    • jtristan
      Senior Member
      • oct
      • 240

      #3
      Hola Chan,

      eso es lo primero que pensé. Pero por algún motivo no funciona correctamente. Imagino, que lo interpreta como string, y el encontrarse con el caso de 22:00 a 06:00 pues lógicamente las condiciones no se cumplen.
      También he probado con un between pero estoy en el mismo caso.
      Por eso, necesitaría una función que si interprete esos valores como tiempo y no como string.

      Muchas gracias.

      Comentario

      • jtristan
        Senior Member
        • oct
        • 240

        #4
        Hola Chan,

        eso es lo primero que pensé. Pero por algún motivo no funciona correctamente. Imagino, que lo interpreta como string, y el encontrarse con el caso de 22:00 a 06:00 pues lógicamente las condiciones no se cumplen.
        También he probado con un between pero estoy en el mismo caso.
        Por eso, necesitaría una función que si interprete esos valores como tiempo y no como string.

        Muchas gracias.

        Comentario

        • jtristan
          Senior Member
          • oct
          • 240

          #5
          Me he dado cuenta de que no es posible hacerlo. En algún momento tendriamos que indicar la hora para la que nosotros empezamos el día. De esta forma, si podriamos concatener a la fecha actual, la hora y si la hora se encuentra entre las 24:00 y el comienzo del día, concatenar la fecha del día siguiente a la hora.
          De esta forma si podríamos realizar la comparación.

          Comentario

          • Chan
            Member
            • jul
            • 70

            #6
            y si añades el timestamp completo?

            Comentario

            • DavidXD_XD
              Moderator
              • ago
              • 1255

              #7
              Hola, yo realizaria un artificio, por ejm. si quieres una hora entre las 22Hrs y las 6hrs es obvio que no funcionara , debido a que 22 es mayor que 6 pero 22 pertenece al dia anterior, entonces,

              Código:
              IF (fecha_inicial > fecha_final).
                fecha_final = fecha_final + 24 Hrs.
              ENDIF.
              
              ... (Realizar la comparacion entre 22 y (6 + 24))
              La otra forma es, como vi en el ultimo comentario y creo q es muy viable, el concatenar la fecha y la hora ... supongamos q las 6Hrs pertenezcan al dia de hoy, entonces estarias comparando esto

              20100825220000 y 20100826060000

              Espero te ayude ...
              David Carballido Córdova

              Comentario

              • jtristan
                Senior Member
                • oct
                • 240

                #8
                Mi problema era no tener el dato en la tabla de cuando comienza el día. Ahora vamos a almacenarlo en una tabla aparte, con lo cual ya si que puedo realizar la concatenación con la fecha o la forma que me propones.
                La culpa fue mia por obcecarme en tratar de trabajar a nivel de horas, en vez de strings, sin darme cuenta de que no había solución con la información que tenía.

                Muchas gracias.
                Un saludo.

                Comentario

                Trabajando...