Ver Mensaje Individual
  #4 (permalink)  
Antiguo 02/12/2009, 09:38
Avatar de maycolalvarez
maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 11 años, 6 meses
Puntos: 1532
Respuesta: Restarle 10 a una fecha

debes de especificarle al sql que lo que estás pasando es una facha, si colocas 02-12-09 lo interpretará como una operación aritmética (02 menos 12 menos 9) y dará: -19 !!!

En cambio si lo colocas así: '02-12-09' lo interpreta como un cadena, mysql interpreta implícitamente cadenas como fecha cuando se les compara con un campo date, pero sólo evalúa cadenas con su formato preestablecido que sería 'YYYY-MM-DD' o 'yy-MM-DD', por ello '02-12-09' no lo interpretará adecuadamente, seria mejor '2009-12-09', es recomendable usar 4 dígitos en el año para evitar el efecto Y2K.

otra solución es especificar explícitamente el formato de fecha con STR_TO_DATE(date_str,format), en donde le especificas el formato:

STR_TO_DATE('02-12-09','%y-%m-%d')

Si el campo en donde almacenas la fecha no es DATE o DATETIME, debes considerar cambiarlo o aplicar str_to_date

Última edición por maycolalvarez; 02/12/2009 a las 09:44