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

Me pueden decir por que el error????

Estas en el tema de Me pueden decir por que el error???? en el foro de ASP Clásico en Foros del Web. Tengo el siguiente codigo y me marca este error: SQL="INSERT INTO actividades (fecha,actividad,horainicio,horafinal,tiempoprog,t iemporeal,clavearea,claveproceso,resultado)" SQL=SQL&" VALUES ('"&Fecha&"' , '"&Actividad&"', '"&Inicio&"', '"&Fin&"', '"&Tp&"', '"&Tr&"','"&Area&"', '"&Proceso&"', '"&resultado&"')" ...
  #1 (permalink)  
Antiguo 05/04/2006, 11:29
Avatar de AnaLuisa  
Fecha de Ingreso: marzo-2006
Ubicación: México
Mensajes: 254
Antigüedad: 18 años, 2 meses
Puntos: 0
Me pueden decir por que el error????

Tengo el siguiente codigo y me marca este error:

SQL="INSERT INTO actividades (fecha,actividad,horainicio,horafinal,tiempoprog,t iemporeal,clavearea,claveproceso,resultado)"
SQL=SQL&" VALUES ('"&Fecha&"' , '"&Actividad&"', '"&Inicio&"', '"&Fin&"', '"&Tp&"', '"&Tr&"','"&Area&"', '"&Proceso&"', '"&resultado&"')"
Set Conn=Server.CreateObject("ADODB.Connection")
Conn.Open "DSN=con;uid=alcc;pwd=analuisa"
Set RS = Conn.Execute(SQL)
Conn.Close



Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting datetime from character string.
/cfe/TMP6qzilx9f6p.asp, línea 23

Mi campo Inicio y Fin los declare de tipo datetime, en que estoy mal???
__________________
nabetsE
  #2 (permalink)  
Antiguo 05/04/2006, 11:30
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Que valor tiene tu variable fecha?
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 05/04/2006, 11:43
Avatar de AnaLuisa  
Fecha de Ingreso: marzo-2006
Ubicación: México
Mensajes: 254
Antigüedad: 18 años, 2 meses
Puntos: 0
ese campo lo declare tipo char para que no me diera problemas al insertar los datos, pero donde creo que me marca el error es en los campos de incio y fin
__________________
nabetsE
  #4 (permalink)  
Antiguo 05/04/2006, 11:45
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Hazle un response.write a tu consulta, y pega aqui la salida...

Response.Write(SQL)
Response.End

Tambien ayudaria saber la estructura de tu tabla.
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #5 (permalink)  
Antiguo 05/04/2006, 12:18
Avatar de AnaLuisa  
Fecha de Ingreso: marzo-2006
Ubicación: México
Mensajes: 254
Antigüedad: 18 años, 2 meses
Puntos: 0
5/4/2006DF300PPTII7:007:30analisis0INSERT INTO actividades (fecha,actividad,horainicio,horafinal,tiempoprog,t iemporeal,clavearea,claveproceso,resultado) VALUES ('5/4/2006' , 'analisis', '7:00', '7:30', '0', '0','DF300', 'PPTII', '0')

Esta es mi consulta
__________________
nabetsE
  #6 (permalink)  
Antiguo 05/04/2006, 12:24
Avatar de AnaLuisa  
Fecha de Ingreso: marzo-2006
Ubicación: México
Mensajes: 254
Antigüedad: 18 años, 2 meses
Puntos: 0
Los datos a un datetime se insertan de manera normal???, es decir no llevan gato como la fecha ni nada por el estilo???
aparte ¿se pueden hacer operaciones con este tipo de datos,como un resta o algo asi?
__________________
nabetsE
  #7 (permalink)  
Antiguo 05/04/2006, 13:06
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Cita:
Iniciado por AnaLuisa
Los datos a un datetime se insertan de manera normal???, es decir no llevan gato como la fecha ni nada por el estilo???
aparte ¿se pueden hacer operaciones con este tipo de datos,como un resta o algo asi?

Si, pero está esperando una fecha...
Puedes utilizar la función dateadd de SQL

http://www.forosdelweb.com/showthrea...90#post1493390
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #8 (permalink)  
Antiguo 05/04/2006, 13:11
Avatar de AnaLuisa  
Fecha de Ingreso: marzo-2006
Ubicación: México
Mensajes: 254
Antigüedad: 18 años, 2 meses
Puntos: 0
El Dateadd Es Para Agregar Dias O No??? Yo Quisiera Restar A Horafinal La Horainicio Para Saber El Tiempo Que Tardara...
__________________
nabetsE
  #9 (permalink)  
Antiguo 05/04/2006, 13:42
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
La función dateadd te sirve para hacer cálculos con cualquier intervalo de tiempo de los que ahí menciona, corre este ejemplo en tu SQL:

SELECT DATEADD(minute, -30, getDate()) AS hora_actual_menos_treinta
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #10 (permalink)  
Antiguo 05/04/2006, 13:51
Avatar de AnaLuisa  
Fecha de Ingreso: marzo-2006
Ubicación: México
Mensajes: 254
Antigüedad: 18 años, 2 meses
Puntos: 0
otra duad si quiero que solo me almacene la hora, y no la fecha que puedo hacer o forsozamente me guarda las dos cosas????
__________________
nabetsE
  #11 (permalink)  
Antiguo 05/04/2006, 14:01
Avatar de AnaLuisa  
Fecha de Ingreso: marzo-2006
Ubicación: México
Mensajes: 254
Antigüedad: 18 años, 2 meses
Puntos: 0
puedo hacer esto???

Tp=DATEADD(minute, -30, getDate()) AS hora_actual_menos_treinta
__________________
nabetsE
  #12 (permalink)  
Antiguo 05/04/2006, 15:01
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Cita:
Iniciado por AnaLuisa
otra duad si quiero que solo me almacene la hora, y no la fecha que puedo hacer o forsozamente me guarda las dos cosas????
El tipo de dato datetime, siempre almacena una fecha y una hora, lo que necesitarías es mediante la misma función dateadd hacer el query para extraer la parte que te interesa.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #13 (permalink)  
Antiguo 05/04/2006, 15:04
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Cita:
Iniciado por AnaLuisa
puedo hacer esto???

Tp=DATEADD(minute, -30, getDate()) AS hora_actual_menos_treinta


Para qué quieres hacer esto?
Si haces el SELECT, la base de datos te regresará un campo llamado hora_actual_menos_treinta con el valor resultado de este query.

A lo mejor no estoy entendiendo muy bien lo que necesitas.


Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #14 (permalink)  
Antiguo 06/04/2006, 09:24
Avatar de AnaLuisa  
Fecha de Ingreso: marzo-2006
Ubicación: México
Mensajes: 254
Antigüedad: 18 años, 2 meses
Puntos: 0
Lo que tengo son dos select en los cuales elijo una hora de inicio y otra de fin de una actividad esos select tiene como valores las horas:

<option value="7:00">7:00 a.m.</option>

Ahora bien tengo que realizar la resta de estas horas elegidas, para ingresar a mi base de datos los campos:

horainicio, horafin, tiempoprogramado.

SQL="INSERT INTO actividades (fecha,actividad,horainicio,horafinal,tiempoprog,t iemporeal,clavearea,claveproceso,resultado)"
SQL=SQL&" VALUES ('"&Fecha&"' , '"&Actividad&"', '"&Inicio&"', '"&Fin&"', '"&Tp&"', '"&Tr&"','"&Area&"', '"&Proceso&"', '"&resultado&"')"


en donde tiempo programado es la diferencia de horas, espero haberme esplicado y que alguien me pueda ayudar.

De todos modos muchas gracias por el tiempo que dedica usted a este post.
__________________
nabetsE
  #15 (permalink)  
Antiguo 06/04/2006, 11:06
Avatar de AnaLuisa  
Fecha de Ingreso: marzo-2006
Ubicación: México
Mensajes: 254
Antigüedad: 18 años, 2 meses
Puntos: 0
PRIMERO QUE NADA QUIERO AGRADECER A U_GOLDMAN POR EL TIEMPO QUE ME DEDICO Y A TODOS AQUELLOS QUE ENTRARON A ESTE POST E INTENTARON AYUDARME POR ULTIMO DECIRLES QUE YA SOLUCIONE MI PROBLEMA DE LA SIGUIENTE FORMA, EARA MAS SENCILLO DE LO QUE PENSE:

<%d=DateDiff("h", Inicio, Fin)
response.Write(d)%>


GRACIAS DE NUEVO...
__________________
nabetsE
  #16 (permalink)  
Antiguo 10/04/2006, 11:49
Avatar de AnaLuisa  
Fecha de Ingreso: marzo-2006
Ubicación: México
Mensajes: 254
Antigüedad: 18 años, 2 meses
Puntos: 0
De nuevo recurro a ustedes por que ya que pude trabajar con las horas ahora quiero juntar los resultados para insertarlos en la base de datos, tengo lo siguiente:

h=DateDiff("h", Inicio, Fin)
m=DateDiff("n",Inicio, Fin)
m=m Mod 60

Aqui tengo por separado la hora y minutos, lo que quiero es juntarlos (en una sola variable) para guardarlos como lo puedo hacer????
__________________
nabetsE
  #17 (permalink)  
Antiguo 10/04/2006, 12:25
Avatar de a n g e l u s  
Fecha de Ingreso: enero-2006
Ubicación: Chile
Mensajes: 237
Antigüedad: 18 años, 5 meses
Puntos: 1
juntosperonorevueltos = h &" " & m
eso se llama concatenar
__________________
Atte,
A n g e l u s
Concepción - Chile
más vale respuestas bien pensadas, que 7000 post
  #18 (permalink)  
Antiguo 10/04/2006, 12:25
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
veamos:

hora_total = h & ":" & m & ":00"
fecha = Date() & " " & hora_total
fecha_tipo_fecha = cdate(fecha)

A ver si algo asi te ayuda.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #19 (permalink)  
Antiguo 10/04/2006, 13:16
Avatar de AnaLuisa  
Fecha de Ingreso: marzo-2006
Ubicación: México
Mensajes: 254
Antigüedad: 18 años, 2 meses
Puntos: 0
Gracias por las respuestas eso me funciono muy bien pero ahora por que si hago la resta y esta me da 0 en las horas, al guardar en la BD me pone 12 ejemplo:

horainicio:07:00:00
horafinal:07:45:00
tiempoprogramado: 12:45:00

No entiendo, ademas puedo guardar solo la hora en la BD o forsozamente tambien la fecha???
__________________
nabetsE
  #20 (permalink)  
Antiguo 10/04/2006, 13:20
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Supongo que mas bien tienes que controlar que parte de la hora quieres restar, si haces una resta

7:45 - 7 horas, el resultado sera 00:45 (12:45)

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #21 (permalink)  
Antiguo 10/04/2006, 13:24
Avatar de AnaLuisa  
Fecha de Ingreso: marzo-2006
Ubicación: México
Mensajes: 254
Antigüedad: 18 años, 2 meses
Puntos: 0
y si quiero que aparesca 00:45 como le puedo hacer otra idea que tenia es declarar ese campo como caracter para que no le de ese formato como ve????
__________________
nabetsE
  #22 (permalink)  
Antiguo 10/04/2006, 13:26
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
un if?

if hour(rs("campo_fecha")) = 0 then
' imprimes 12
else
'imprimes la hora
end if
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #23 (permalink)  
Antiguo 10/04/2006, 13:36
Avatar de AnaLuisa  
Fecha de Ingreso: marzo-2006
Ubicación: México
Mensajes: 254
Antigüedad: 18 años, 2 meses
Puntos: 0
mas bien al reves si es doce que me imprima 0 o no por que lo que quiero decir es que la persona dedica ra a esa actividad 45 minutos ose menos de una hora
__________________
nabetsE
  #24 (permalink)  
Antiguo 10/04/2006, 13:38
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Bueno, se entendió la idea no? ;)
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #25 (permalink)  
Antiguo 10/04/2006, 13:42
Avatar de AnaLuisa  
Fecha de Ingreso: marzo-2006
Ubicación: México
Mensajes: 254
Antigüedad: 18 años, 2 meses
Puntos: 0
upssss si muchas gracias por las respuestas.....
Hasta pronto con nuevas dudas o al menos eso espero....

Cuidese Bye
__________________
nabetsE
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 17:08.