Ver Mensaje Individual
  #4 (permalink)  
Antiguo 01/04/2013, 11:17
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: Update en mysql

Cita:
es que no he podido hacerme con un manual bueno de mysql.
Tomate el tiempo de googlear con mejores parámetros. Te puedes dar la idea que si existe una pagina oficial de MySQL, en esa misma página seguro que deben aparecer los manuales...
¿No te parece?
Algo tan sencillo como buscar tres palabras: reference manual MySQL (Si, esto es un link)
En el manual de referencia (todos los DBMS tienen uno on-line) vas a encontrar las funciones que buscas: http://dev.mysql.com/doc/refman/5.0/es/functions.html

Volviendo a tu problema, como ya te dije, no puedes aplicar funciones a los campos de entrada, así que no hagas esto:
Código MySQL:
Ver original
  1. SET YEAR(FECHA_COMPRA) = "2012"
¿Te queda claro?

Eso NO SE HACE.

El WHERE... eso es otro tema.

En realidad tu problema tiene una solución muy elemental, que con sólo googlear la misma función que puse (ADDDATE()), podrías haber encontrado, ya que esa misma tiene dos formas de parametrización:
Código MySQL:
Ver original
  1. UPDATE PEDIDOS
  2. SET FECHA_COMPRA = ADDDATE(FECHA_COMPRA, INTERVAL 1 YEAR)
  3. WHERE YEAR(FECHA_ENTREGA) < YEAR(CURDATE());
que bien puedo escribir así:
Código MySQL:
Ver original
  1. UPDATE PEDIDOS
  2. SET FECHA_COMPRA = ADDDATE(FECHA_COMPRA, INTERVAL 1 YEAR)
  3. WHERE YEAR(FECHA_ENTREGA) = 2012;

O incluso:
Código MySQL:
Ver original
  1. UPDATE PEDIDOS
  2. SET FECHA_COMPRA = ADDDATE(FECHA_COMPRA, INTERVAL 1 YEAR)
  3. WHERE YEAR(FECHA_ENTREGA) (= YEAR(CURDATE()) -1);

PD: No uses comillas (") o apostrofos (') indiscriminadamente. En SQL no tienen el mismo uso, e incluso eso varía en cada DBMS.
Las cadenas de texto en MySQL van siempre entre apóstrofos, no entre comillas. Y los valores numéricos jamás deben ir entre apostrofos, porque no son cadenas de texto.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)