Ver Mensaje Individual
  #4 (permalink)  
Antiguo 24/07/2008, 08:20
Avatar de Scour
Scour
 
Fecha de Ingreso: octubre-2003
Ubicación: Murcia (España)
Mensajes: 94
Antigüedad: 20 años, 5 meses
Puntos: 0
Respuesta: Problemas en formato de fecha desde PHP hacia SQl Server 2000

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.