From: | "Miguel Angel" <mvillagomez(at)sayab(dot)com(dot)mx> |
---|---|
To: | "'Raul Caso'" <feve18(at)gmail(dot)com> |
Cc: | <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | RE: ayuda remplazo masivo en un campo |
Date: | 2006-03-15 21:53:41 |
Message-ID: | 20060315215432.346FD9DC82D@postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Teniendo esta tabla:
Prueba
valor1 valor2
1 5:45 p.m.
2 3:45 a.m.
3 12:00 p.m.
Y ejecutando esta function:
CREATE OR REPLACE FUNCTION cambia() RETURNS INTEGER AS $$
DECLARE
a RECORD;
cont INTEGER:=0;
BEGIN
FOR a IN (SELECT * FROM prueba) LOOP
UPDATE prueba SET valor2=(SELECT REPLACE(a.valor2 , '.' ,'')) WHERE
valor1=a.valor1 AND valor2=a.valor2;
cont:=cont+1;
END LOOP;
RAISE NOTICE '% registros modificados',cont;
RETURN cont;
END;
$$ LANGUAGE PLPGSQL;
SELECT cambia();
Obtengo:
Prueba
valor1 valor2
1 5:45 pm
2 3:45 am
3 12:00 pm
Para cada valor de la tabla. Solo ajusta la función a tus necesidades y
necesitaras instalar el lenguaje plpgsql, para que funcione.
_____
De: pgsql-es-ayuda-owner(at)postgresql(dot)org
[mailto:pgsql-es-ayuda-owner(at)postgresql(dot)org] En nombre de Raul Caso
Enviado el: Miércoles, 15 de Marzo de 2006 03:00 p.m.
Para: Raul Caso; lista postgresql; alvherre(at)commandprompt(dot)com
Asunto: Re: [pgsql-es-ayuda] ayuda remplazo masivo en un campo
El día 15/03/06, Alvaro Herrera <alvherre(at)commandprompt(dot)com> escribió:
Raul Caso escribió:
> Hola a ver si me pueden dar una idea tengo una tabla con 2 mil registros
> esta tabla tiene un campo de tipo varchar que guarda un contenido con el
> formato hh:mm a.m. o hh:mm p.m .
Huh, te equivocaste estrepitosamente de tipo de dato. Para guardar
horas no deberias estar usando "varchar", sino "time".
> el problema es que quiero cambiar las
> extensiones " a.m. y p.m." por am y pm
> sin ningun punto; osea hacer un update masivo para todos los registros no
se
> si me pueden dar alguna idea
Para eso usa UPDATE sin especificar WHERE.
Exacto los que crearon la tabla equivocaron el tipo de dato y debo seguir
trabajando asi
pero lo que pasa es cada fila tiene un valor algo asi 5:45 p.m. y para
hacer mis comparaciones hago un cast a time y no me lo acepta porque los
campos tienen p.m. osea necesito eliminar los puntos despues de cada letra
pero sin modificar el valor de la hora del mismo campo ,un expresion regular
en mi sentecia sql update me ayudaria? como lo podria hacer?
--
¿Quieres ser parte del 5% o del 95%?
http://www.ixp.net/rcaso
Raulinho
97033825-4327239
From | Date | Subject | |
---|---|---|---|
Next Message | Mario Gonzalez | 2006-03-15 22:01:58 | Re: Editar campo de tabla |
Previous Message | Orlando Alarcon | 2006-03-15 21:52:56 | Editar campo de tabla |