Hola a tod@s:
Necesito guardar en un campo declarado como TIME el valor que contiene dicho campo más la suma de la siguiente operación:
*.- La diferencia de dos horas más el valor actual de dicho campo TIME.
Por ejemplo:
La idea es realizar un UPDATE con la diferencia de horas entre 2 y 3 y dicha diferencia sumársela al contenido de 1
Seria... Diferencia(3-2)+1 y lo dejamos en 1
He intentado lo siguiente pero da error así como difernetes formas encontradas en la red que no se ajustan a lo que necesito...
UPDATE Perm_Horatotal SET ADDTIME(Perm_Horatotal,TIME_DIFF(cControl:Cont_Horaent,tTiempo )) FROM EMPRESA")
Donde:
He revisado diferentes ejemplos en la red pero realmente me estoy liando sin llegar a una solución correcta.
No me importa que las horas se vayan acumulando hasta valores altos como podrían ser 240 horas o mas, tampoco se si se podría hacer q en vez de acumular las correspondientes horas, se pudiera guardar con el formato X días y X horas, es decir que cuando se llegue a 24 horas se sume un día¿Alguien me podría orientar?
Un saludo.
--
Has recibido este mensaje porque estás suscrito al grupo "ADO Harbour" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a ado-harbour...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/ado-harbour/b80453ad-b29d-257a-7324-ce7c02fa33d8%40gmail.com.
Hola a tod@s:
Después de usar la sintaxis correcta, la línea quedaría así...
oConn:Execute("UPDATE PERMISOS set Perm_Horatotal = ADDTIME(Perm_Horatotal,TIMEDIFF('"+TIME()+"',cControl:Cont_Horaent)")
Pero dicha línea me da un error...
Subsystem Call ..............: WINOLE
System Code .................: 1007
Default Status ..............: .F.
Description .................: [MySQL][ODBC 5.3(a)
Driver][mysqld-5.5.5-10.1.40-MariaDB]You have an error in your SQL
syntax; check the manual that corresponds to your MariaDB server
version for the right syntax to use near ':Cont_Horaent)' at line
1 (0x80040E14)
Operation ...................: EXECUTE
Arguments ...................: [ 1] = Type: C Val: UPDATE
PERMISOS set Perm_Horatotal =
ADDTIME(Perm_Horatotal,TIMEDIFF('20:28:48',cControl:Cont_Horaent)
Involved File ...............: Microsoft OLE DB Provider for ODBC
Drivers
Dos Error Code ..............: -2147352567
El error se produce en la línea indicada y al ver el contenido del campo cControl:Cont_Horaent(que está definido como TIME) veo que su contenido es algo parecido esto 2021-06-23 20:31:53, entiendo que eso sería un DATETIME y revisando que valor se guarda en dicho campo veo que hay una hora del estilo a 15:32:45.
¿Qué estoy pasando por alto o que estoy haciendo mal?
Un saludo.
--
Has recibido este mensaje porque estás suscrito al grupo "ADO Harbour" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a ado-harbour...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/ado-harbour/454b78e0-0764-4916-aa99-e470d2f8203dn%40googlegroups.com.
Creo que te falta un paréntesis
oConn:Execute("UPDATE PERMISOS set Perm_Horatotal = ADDTIME(Perm_Horatotal,TIMEDIFF('"+TIME()+"',cControl:Cont_Horaent))")
Antonio Vázquez
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/ado-harbour/2bfff321-a5db-a3f2-7eba-7d85cc73e90b%40gmail.com.
Gracias Antonio, de eso ya me había dado cuenta después de
enviar el correo.
He cambiado la instrucción por lo siguiente...
oConn:Execute("UPDATE PERMISOS set Perm_Horatotal = ADDTIME(Perm_Horatotal,TIMEDIFF('"+TIME()+"','"+cControl:Cont_Horaent+"'))")
Y sigue con el error y aquí se v ve lo que ya indiqué...
Subsystem Call ..............: BASE
System Code .................: 1081
Default Status ..............: .F.
Description .................: Error de argumento
Operation ...................: +
Arguments ...................: [ 1] = Type: C Val: UPDATE
PERMISOS set Perm_Horatotal =
ADDTIME(Perm_Horatotal,TIMEDIFF('21:33:26',' [ 2] = Type: T Val:
t"2021-06-23 21:33:19"
Involved File ...............:
Dos Error Code ..............: 0
El campo cControl:Cont_Horaent(que es de otra tabla y definido como TIME y cuyo valor guardado es 21:33:19) me carga la fecha y la hora como si fuera un DATETIME... sigo sin saber por que hace esto.
Un saludo.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/ado-harbour/009101d76860%244ae46470%24e0ad2d50%24%40gmail.com.
Tienes toda la razón David, pese a que en un principio se guardan los datos... luego da error. Al final me he decidido por un INT y guardar la información en segundos ya que como me indicas es una buena forma para luego hacer cálculos y pasarlo al formato que me interese.
Un saludo.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/ado-harbour/9c52cff1-c409-4215-aa5b-3da593aa5e00n%40googlegroups.com.