Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

Concatenacion variable en Interval

Estas en el tema de Concatenacion variable en Interval en el foro de PostgreSQL en Foros del Web. hola amigos tengo el siguiente problema deceo concatenar una variable al interval y no se como hacerlo, la idea es la siguiente fecha:= fecha + ...
  #1 (permalink)  
Antiguo 11/08/2010, 15:14
Avatar de death_nemesis  
Fecha de Ingreso: abril-2009
Ubicación: Santiago - Chile
Mensajes: 147
Antigüedad: 15 años, 8 meses
Puntos: 2
Concatenacion variable en Interval

hola amigos tengo el siguiente problema deceo concatenar una variable al interval y no se como hacerlo, la idea es la siguiente


fecha:= fecha + interval '1 day';

y la idea es q sea asi por ejemplo

dias:= 2;

fecha:= fecha + interval ''||dias||'day';
  #2 (permalink)  
Antiguo 11/08/2010, 16:14
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 10 meses
Puntos: 360
Respuesta: Concatenacion variable en Interval

death_nemesis te daré la explicación para que no vuelvas a tener problemas con estas cosas.

Dentro de un procedimiento, las comillas sencillas son utilizadas para hacer alusión a valores de texto o valores en consulta de tipo date o varchar.

si ves este ejemplo:
CREATE FUNCTION algunafuncion() RETURNS INTEGER AS ’
DECLARE
cantidad INTEGER := 30;
BEGIN
RAISE NOTICE ’’La cantidad aquí es %’’,cantidad; -- La cantidad aquí es 30
cantidad := 50;
--
-- Crea un subbloque
--
DECLARE
cantidad INTEGER := 80;
BEGIN
RAISE NOTICE ’’La cantidad aquí es %’’,cantidad; -- La cantidad aquí es 80
END;
RAISE NOTICE ’’La cantidad aquí es %’’,cantidad; -- La cantidad aquí es 50
RETURN cantidad;
END;
’ LANGUAGE ’plpgsql’;


Fijate que después del AS, el cuerpo del procedimiento es abierto con comillas sencillas y cada que en el begin se requiere imprimir un texto, es necesario hacer doble uso de la comilla para que no cierre la comilla que delimita el procedimento. Para nuevas versiones de postgres para delimitar, es posible utilizar también el simbolo $$ o $body$ o lo que quieras que esté delimitado por el simbolo $ con el fin de simplificar el manejo indistriminado de comillas sencillas y tener un codigo mas limpio. Tambien existe una función llamada quote_literal que facilita el manejo de estas molestas comillas.

Entonces... después de toda esta chachara una solución sería:
Código SQL:
Ver original
  1. dias := '2 day';
  2. fecha:= fecha + INTERVAL || '  ' || quote_literal(dias);
  3.  
  4. o
  5.  
  6. dias := 2;
  7. fecha:= fecha + INTERVAL || '  '' ' || dias || ' day '' ';

No he probado nada, pero esa es la idea.

se entiende?

saludos death_memesis
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Etiquetas: variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:03.