Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/12/2009, 09:22
Avatar de aniMAYtions
aniMAYtions
 
Fecha de Ingreso: diciembre-2007
Ubicación: Granada
Mensajes: 519
Antigüedad: 16 años, 4 meses
Puntos: 2
Quiero crear un trigger que me formatte una cadena de caracteres antes de insertarla

Hola amig@s.

Mi problema es el siguiente; Resulta que en un formulario de registro recojo una cadena de caracteres a modo de fecha en el formato dd/mm/aaaa. Por diversas razones, la conversión de la cadena debo hacerla con un trigger en mi base de datos mysql. Quiere decir, un trigger que me cambie el formato de la fecha a aaaa-mm-dd antes de ser insertada, ia que si intento insertar esta cadena en mi campo date me aparece como 0000-00-00 directamente.
Por el momento he intentado crear el trigger de la siguiente manera:
Código:
CREATE TRIGGER tr_formato_fecha  BEFORE INSERT ON emp_users
BEGIN
DECLARE @anio char(4),
 @mes char(2),
 @dia char(2);
SET @anio = MID(NEW.fecha_nacimiento, 7, 4);
SET @mes = MID(NEW.fecha_nacimiento, 4, 2);
SET @dia = MID(NEW.fecha_nacimiento, 1, 2);
SET NEW.fecha_nacimiento = concat(@anio, "-",@mes,"-","dia");
END;
Lo he hecho con el DECLARE y sin él también, pero en cualquier caso Mysql sigue dándome error, el 1064.

Podeis decirme qué estoy haciendo mal??

Gracias!!