Foros del Web » Programando para Internet » ASP Clásico »

funcion timediff para calcular rango de horas

Estas en el tema de funcion timediff para calcular rango de horas en el foro de ASP Clásico en Foros del Web. estoy tratando de calcular la diferencias entre horas, una variable se encuentra en la BD(entrada) y la otra se ingresa por teclado en un cuadro ...
  #1 (permalink)  
Antiguo 01/02/2007, 09:34
 
Fecha de Ingreso: enero-2007
Mensajes: 158
Antigüedad: 17 años, 3 meses
Puntos: 0
Exclamación funcion timediff para calcular rango de horas

estoy tratando de calcular la diferencias entre horas, una variable se encuentra en la BD(entrada) y la otra se ingresa por teclado en un cuadro de texto(hr), las dos en formato hh:mm la consulta es la sgte:
<%
SQL = ""
SQL = SQL & " Select timediff(entrada, '" & Request("hr") & "' )as atra From horario Where id = '" & Request("ids") & "' "
Set Consulta = oConn.Execute(SQL)
Do While NOT Consulta.EOF
at = Consulta("atra")
Consulta.MoveNext
Loop


SQL = " "
SQL = SQL + " Insert Into atraso(rut, fecha, hora_llegada, dia)"
SQL = SQL + " Values ('" & request("rut_aux") & "', '" & Request("fec") & "', '" & Request("hr") & "', '" & Request("di") & "')"
Set Consulta = oConn.Execute(SQL)


%>

Me genera el sgte error:
Microsoft JET Database Engine (0x80040E14)
La función 'timediff' no está definida en la expresión.
/a/atraso.asp, línea 37



Solo quiero que me retorne los minutos y segundos de diferencia
  #2 (permalink)  
Antiguo 01/02/2007, 10:14
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 5 meses
Puntos: 144
Re: funcion timediff para calcular rango de horas

Debes usar la función datediff. Bájate este fichero de ayuda, y mira el apartado de funciones, allí está explicado su uso.

Salu2
  #3 (permalink)  
Antiguo 01/02/2007, 10:23
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 6 meses
Puntos: 8
Re: funcion timediff para calcular rango de horas

Que tal Caro.

Oye no nos comentas que base de datos estas usando, según yo estas usando Acces, pero esperamos tu respuesta.

Por otro lado, yo lo haría de la siguiente manera: guardaría las dos fechas con las que se estan calculando el retraso, y cuando muestre al usuario final el retraso, usas datediff(en segundos) los mostraría en formato hh:mm:mm, haciendo una conversión, para mantener la integridad de la información.

Saludos.
  #4 (permalink)  
Antiguo 01/02/2007, 11:13
 
Fecha de Ingreso: enero-2007
Mensajes: 158
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: funcion timediff para calcular rango de horas

BD acces2000 y asp

Function DiffADate(hr,at)
Dif = DateDiff("ss", hr, at)
End Function

Estoy probando de la manera anterior pero me marca error
hr=cuadro de texto en donde se ingresa una hora por teclado
at= hora extraida de la Bd y guardada en un cuadro de texto con este nombre

parece que tengo algo malo en la funcion
  #5 (permalink)  
Antiguo 01/02/2007, 12:29
 
Fecha de Ingreso: enero-2007
Mensajes: 158
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: funcion timediff para calcular rango de horas

SQL = ""
SQL = SQL & " Select DateDiff(HH, entrada, '" & Request(hr) &" ') as atra, id From horario Where id = '" & Request("ids") &" ' "
Set Consulta = oConn.Execute(SQL)
Do While NOT Consulta.EOF
at = Consulta("atra")
Consulta.MoveNext
Loop

ahora lo estoy tratando de hacer asi, pero me dice:

Microsoft JET Database Engine (0x80040E10)
No se han especificado valores para algunos de los parámetros requeridos.
/a/b.asp, línea 37

  #6 (permalink)  
Antiguo 05/02/2007, 08:07
 
Fecha de Ingreso: enero-2007
Mensajes: 158
Antigüedad: 17 años, 3 meses
Puntos: 0
Exclamación Re: funcion timediff para calcular rango de horas

ahora estoy probando con lo sgte

tengo los cudros de texto:
<input name="at" type="text" id="at" size="15" maxlength="15" value="<%=entra%>" >

<input name="hr" type="text" size="10" maxlength="5" onKeyPress='Solohora();'>


Sub Guardar_onClick
document.nuevo.action="atraso.asp?Accion=Guardando "
nuevo.submit()
resta()
End sub

If Request("Accion") = "Guardando" Then
SQL = ""
SQL = SQL & " Select entrada, id From horario Where id = " & Request("ids") & " "
Set Consulta = oConn.Execute(SQL)
Do While NOT Consulta.EOF
entra = Consulta("entrada")
Consulta.MoveNext
Loop

HASTA QUI VA BIEN, LLAMA A GUARDANDO Y LE ASIGNA A ENTRA EL VALOR DE ENTRADA EN LA BD Y TAMBIEN LLANA A LA SGTE FUNCION : PERO HASTA AHI NO MAS LLEGA PORQUE ME SALE UN ERROR DESPUES:



function resta(){
a= DateDiff("h", document.nuevo.at.value, document.nuevo.hr.value)
}


ERROR:

Se esperaba un objeto

Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:14.