
02/12/2009, 09:38
|
 | Colaborador | | Fecha de Ingreso: julio-2008 Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 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 |