Ver Mensaje Individual
  #5 (permalink)  
Antiguo 16/07/2008, 17:44
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: consulta MYSQL FECHA

Lo siento, en el apuro confundí tu STR_TO_DATE con TO_CHAR, que es la función en Oracle.
De todos modos, como yo lo veo la cosa es así:
Si lo que quieres es los alumnos que están inscriptos en 2007, pero que no lo están en 2008, el tema no es comparar las fechas, y menos aún hacer conversiones innecesarias como la de STR_TO_DATE('2007-07-16','%Y-%m-%d').
Esta conversión no se necesita porque MySQL cuando realiza una comparación entre un campo DATE contra un String que tiene el formato correcto (yyyy-MM-dd), hace la conversión en forma automática. Ni siquiera tienes que perder el tiempo en pensarlo.
Además, como ya dije, la cosa no es con una fecha determinada. Lo que quieres saber es si los de 2007 no estuvieron en 2008, no si se inscribieron en una fecha determinada.

Eso se responde mejor con una subconsulta:
Código:
SELECT * 
FROM tabla 
WHERE cod_reg NOT IN  
    (
    SELECT cod_reg
    FROM tabla 
    WHERE año_inscripcion =2008
    );
En caso de no usar año_inscripción, sino fecha_inscripción, sería:
Código:
SELECT * 
FROM tabla 
WHERE cod_reg NOT IN  
    (
    SELECT cod_reg
    FROM tabla 
    WHERE YEAR(fecha_inscripcion) =2008
    );
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 17/07/2008 a las 12:01