Foros del Web » Programando para Internet » PHP »

Problema con campo tipo 'datetime' de SQL Server

Estas en el tema de Problema con campo tipo 'datetime' de SQL Server en el foro de PHP en Foros del Web. Hola a todos, estoy trabajando con con un servidor windows que tiene instalado apache, sql server y php. Estoy utilizando una libreria llamada "adodb" para ...
  #1 (permalink)  
Antiguo 01/12/2004, 14:09
 
Fecha de Ingreso: julio-2001
Ubicación: León, Gto.
Mensajes: 119
Antigüedad: 22 años, 9 meses
Puntos: 2
Problema con campo tipo 'datetime' de SQL Server

Hola a todos, estoy trabajando con con un servidor windows que tiene instalado apache, sql server y php. Estoy utilizando una libreria llamada "adodb" para hacer la conexion a la base de datos, las consultas y en general todo lo que tenga que ver la interaccion con la base de datos. Me funciona perfectamente, hago consultas, inserto, modifico cualquier tipo de dato.... el problema es el tipo de dato 'datetime'.

Tengo varias tablas con tipos de campos definidos como 'datetime', cuando inserto algun valor en ese campo no hay problema. Mi problema ocurre cuando intento leer el contenido de ese campo y la fecha que tiene es menor al año 1970. Por ejemplo si tengo almacenada en la tabla una fecha como esta: 1962-01-20 00:00:00.000 al momento de leerla con un script me manda lo siguiente: 1969-12-31 17:59:59 que nada tiene que ver con la fecha almacenada.

Se que tiene que ver con la configuracion del "adodb" pero hasta ahorita no he encontrado donde modificarle para que me muestre la fecha tal cual esta almacenada en la tabla.

Alguno de ustedes ha trabajado con esta libreria? ¿Tienen alguna idea de como poder remediar este problema?

Cualquier ayuda se los agradeceria mucho, estoy un poco desesperado
__________________
. . : : chunga : : . .
  #2 (permalink)  
Antiguo 01/12/2004, 14:41
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Revisa este documento:

http://phplens.com/phpeverywhere/adodb_date_library

Un saludo,
  #3 (permalink)  
Antiguo 01/12/2004, 16:24
 
Fecha de Ingreso: julio-2001
Ubicación: León, Gto.
Mensajes: 119
Antigüedad: 22 años, 9 meses
Puntos: 2
Hola, muchas gracias por la pronta respuesta. Esa informacion ya la habia revisado, pero no me sirvio de mucho. Dejenme tratar de explicarte mejor mi problema.

En una tabla uno de los campos esta definido como 'datetime'. Tengo una pagina con un formulario donde recogo toda la informacion que requiero incluyendo una fecha, una vez que todo esta correcto almaceno todo en una base de datos.

Cuando voy a revisar directamente en la base de datos si se almaceno correctamente esta informacion, todo esta perfecto incluyendo la fecha que se almaceno con el formato correcto. Hasta alli todo va muy bien.

El problema ocurre cuando inserto una fecha cuyo año es menor a 1970, porque cuando la quiero leer de la tabla e imprimirla en pantalla me trae siempre esta fecha: 1969-12-31 17:59:59 , es decir 31 de diciembre de 1969.
Yo se que esto tiene que ver con el timestamp de windows, pero mi problema no es almacenarla en la tabla, sino leer la fecha real que esta en la tabla cuando el año es menor a 1970.

Tambien me di cuenta que este problema tiene que ver con algo de la configuracion del adodb, porque cuando la consulto directamente con las funciones de mssql de php me trae el valor real que esta en la tabla.

Espero haberme explicado mejor y ojala me puedan ayudar
__________________
. . : : chunga : : . .
  #4 (permalink)  
Antiguo 01/12/2004, 17:02
 
Fecha de Ingreso: julio-2001
Ubicación: León, Gto.
Mensajes: 119
Antigüedad: 22 años, 9 meses
Puntos: 2
Hay alguna funcion que me lea el contenido de un campo 'datetime' directamente. Asi como esta DBDate() para darle el formato adecuado cuando vamos a almacenar una fecha en la base de datos?
__________________
. . : : chunga : : . .
  #5 (permalink)  
Antiguo 02/12/2004, 05:57
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Realmente desconozco el uso de AdoDB .. pero en ese ducumento al parecer ahí explican e incluyen el código del "parche" para AdoBD para trabajar con fechas en entorno windows.

Como te comento .. no sé que métodos ni que cosas hace dicha classe para trabajar con fechas .. tal vez use date() de PHP o mktime() para trabajar con fechas y darles formato (independiente de lo que lea de la BD que uses . .ya que si bien usas ahora MS SQL Server ..podrías usar Mysql, Oracle .. etc).

Un saludo,
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:59.