En este post te mostraré cómo usar la función replace de PostgreSQL, misma que funciona para remplazar parte de un texto por otro, muy útil para cuando queremos modificar parte del texto de una columna en una consulta.

Función replace en PostgreSQL

La función replace toma 3 argumentos que son, en orden:

  1. El texto sobre el que se va a trabajar
  2. La búsqueda
  3. El remplazo

Esta función puede ser usada para actualizar una tabla, por ejemplo, algo así:

update tabla set columna = replace(columna, búsqueda, replace);

Veamos con un ejemplo.

Ejemplo para remplazar texto en PostgreSQL

Tengo una tabla con fechas como cadena, pero las fechas tienen la letra T para separar la fecha de la hora. Así:

select fecha_terminacion from bultos_de_empleados;
  fecha_terminacion
---------------------
 2020-03-05T22:37:26
 2020-03-09T23:33:48
 2020-03-09T23:33:52
 2020-03-11T00:08:34
 2020-03-13T13:20:20
 2020-03-13T13:23:53
 2020-03-05T22:30:12
 2020-03-05T22:30:15
 2020-03-05T22:30:17
 2020-03-05T22:30:19
 2020-03-05T22:30:21
(11 rows)

Lo que quiero remplazar es esa T por un espacio en blanco, momento de usar la función replace en psql. Para ello ejecuto la siguiente consulta:

update bultos_de_empleados set fecha_terminacion = replace(fecha_terminacion, 'T', ' ');

Ahora las fechas son:

select fecha_terminacion from bultos_de_empleados;
  fecha_terminacion
---------------------
 2020-03-05 22:37:26
 2020-03-09 23:33:48
 2020-03-09 23:33:52
 2020-03-11 00:08:34
 2020-03-13 13:20:20
 2020-03-13 13:23:53
 2020-03-05 22:30:12
 2020-03-05 22:30:15
 2020-03-05 22:30:17
 2020-03-05 22:30:19
 2020-03-05 22:30:21
(11 rows)

Por cierto, es importante notar que en este caso el remplazo es global, es decir, si hubiera más letras T en esa columna, todas se habrían remplazado.

Si el post ha sido de tu agrado te invito a que me sigas para saber cuando haya escrito un nuevo post, haya actualizado algún sistema o publicado un nuevo software. Facebook | X | Instagram | Telegram | También estoy a tus órdenes para cualquier contratación en mi página de contacto