Ver Mensaje Individual
  #5 (permalink)  
Antiguo 24/07/2008, 08:43
Avatar de xcars
xcars
 
Fecha de Ingreso: mayo-2005
Ubicación: El Salvador
Mensajes: 753
Antigüedad: 19 años
Puntos: 4
Respuesta: Problemas en formato de fecha desde PHP hacia SQl Server 2000

Cita:
Iniciado por Scour Ver Mensaje
Solucionado. Explico la solución para quien pueda ayudar:

Por lo visto, la clase (el por qué en mi caso sí, y en otros no, no lo sé) mssql de PHP envía una cabecera Transact-SQL indicando el formato de la fecha como mm/dd/yyyy:

Código:
SET DATEFORMAT mdy
de este modo, aunque se tenga la base de datos en castellano (y por la tanto la fecha en formato dd/mm/yyyy), para la conexión establecida SQL Server considerará la fecha como mm/dd/yyyy.

En teoría, poniendo en el php.ini el parámetro mssql.datetimeconvert igual a 0 (0 u Off) sería suficiente, pero en mi caso no ha funcionado (la clase envía la misma cabecera con el parámetro activo o inactivo).

Para solucionarlo, cada query que se envíe debe llevar la cabecera siguiente:

Código:
set dateformat dmy
De ese modo se machaca el valor establecido por la clase mssql.

El resultado sería:

Código PHP:
$query "set dateformat dmy\n"
$query .= "select * from tabla where campofecha > '15/12/2007'" 
Saludos.
yo prefiero para este tipo de consultas
SELECT * FROM tabla WHERE convert(datetime,campofecha,103) between convert(datetime,fecha_conhora1,103) and convert(datetime,fecha_conhora2,103)

y me olvido de los formatos...
__________________
Con Microaplicaciones puedes hacer tu tienda en línea de forma sencilla y rápida, sin costos ocultos y con mucha responsabilidad.