es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Entre el tiempo en SQL Server y ASP.NET

Estoy almacenando STARTTIME y ENDTIME en una tabla de SQL Server utilizando un formulario web ASP.NET.

timeTableID startTimeVal endTimeVal
-------------------------------------------------
    1       07:30:00.0000000    08:00:00.0000000
    2       08:00:00.0000000    08:30:00.0000000
    3       08:15:00.0000000    08:25:00.0000000

Ahora, como puedes ver en la fila con timeTableID = 2, el valor de tiempo insertado es de 8:00 y 8:30 AM,

Pero en la fila con timeTableID = 3, el valor de tiempo insertado es de 8:15 y 8:25 AM,

No quiero esto porque está dentro del valor de la fila 2.

Mi problema es que la siguiente entrada no debe estar entre el tiempo ya insertado.

Mi intento:

select timeTableID
from timetableTbl
where dayVal = 'LUNES'
and StartTimeVal between '" + startTimeTxt.Text + "' and '" + endTimeTxt.Text + "'
and endTimeVal between '" + startTimeTxt.Text + "' and '" + endTimeTxt.Text + "'

Aquí, startTimeTxt es el cuadro de texto para startTimeVal y endTimeTxt es el cuadro de texto para endTimeVal.

Por favor, ayúdame con esto.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Una manera de asegurarse de que la siguiente entrada no esté dentro de los valores de tiempo de las filas ya insertadas es modificar la consulta SQL en el código de ASP.NET para verificar si existen filas con valores de tiempo conflictivos.

    Por ejemplo, puede utilizar la siguiente consulta SQL:

    SELECT timeTableID 
    FROM timetableTbl 
    WHERE dayVal = 'LUNES' 
    AND (
        (StartTimeVal >= @startTime AND EndTimeVal <= @endTime)
        OR (StartTimeVal <= @startTime AND EndTimeVal >= @startTime)
        OR (StartTimeVal <= @endTime AND EndTimeVal >= @endTime)
    )
    

    Aquí, @startTime y @endTime son los parámetros para los valores de tiempo de inicio y fin de la nueva entrada. La consulta verifica si hay alguna fila existente donde los valores de tiempo de inicio y fin se superpongan con la nueva entrada.

    Si la consulta devuelve filas, significa que hay un conflicto y la nueva entrada no debe ser insertada. De lo contrario, la nueva entrada se puede insertar en la tabla.

    Puede incluir esta consulta en el código de ASP.NET que inserta nuevas entradas en la tabla para asegurarse de que la siguiente entrada no esté dentro de los valores de tiempo de las filas ya insertadas.

Comments are closed.