El post que buscas se encuentra eliminado, pero este también te puede interesar

Problema con fechas foxpro smalldatetime en SQL o Sybase

Hola amigos:

He tenido bastantes problemas al tratar de trabajar con tablas de una base de datos Sybase donde sus campos están declarados como Smalldatetime y al querer actualizar desde Visual FoxPro a través de una vista remota me marcaba error al mandar como fecha el clásico DATETIME() ya sea con un UPDATE o un REPLACE no funcionaba. El error que despliega fox:

Connectivity error: [DataDirect][ODBC Sybase Wire Protocol driver]String data, right truncated. Error en parameter 1.

Busqué y busqué en la nube y de plano no encontré como arreglarlo y lo poco que encontré estaba orientado a resolverlo con procedimientos almacenados en el servidor SQL (en mi caso Sybase). Esto no era una opción, dado que el sistema que les comento en fox ya estaba desarrollado.

Despues de hacer intentos con muchas configuraciones con un SET DATE o tratar de modificar la vista, me desesperé. Pero como siempre he dicho (aunque a veces me cuesta recordar cuando me encuentro en problemas): EN LA INFORMATICA TODO SE PUEDE, EL PROBLEMA ES QUE NO SABEMOS HACERLO.

Bueno, pues encontre como resolverlo con el mismo DATETIME pero mandando el parametro de los segundos en 00 y los demas parametros con los de la fecha actual, aqui la linea que pueden aplicar a su REPLACE o UPDATE:

REPLACE fecharegistro WITH DATETIME(YEAR(DATE()),MONTH(DATE()),DAY(DATE()), HOUR(DATETIME()),MINUTE(DATETIME()),00)

Y listo, se graba sin ningún problema y envía las actualizaciones a Sybase.

Espero verdaderamente a alguien le sea de utilidad, incluso si harán una migración de información a SQL o Sybase o cualquier otra base de datos que soporte el dato Smalldatime. Agradeceré infinitamente si alguien conoce otro método y lo comparte. Saludos desde México.

Anuncios

2 comentarios - Problema con fechas foxpro smalldatetime en SQL o Sybase

@orgware
facil man REPLACE fecharegistro with datetime()-datetime() le envia vacio y asis sucesivamente jajaja pero hace un año que estaba necesitando jajaja