Validar Intervalos de Fechas

Imagen de Girl126

Forums: 

Hola amigos tengo un inconveniente, tengo un formulario donde ingreso unidades tributarias; esta unidad tributaria tiene una fecha de inicio y una fecha de fin que corresponde a su vigencia, pero debo validar que al ingresar otra unidad tributaria su fecha de vigencia no este dentro del rango de otra, es decir si ingreso una que la fecha sea por ejemplo entre el 26/12/2004 y el 26/12/2005; no puedo ingresar otra dentro del intervalo de esas fechas, si ingreso otra que la fecha sea del 15/10/2005 al 25/11/2005 no la deberia guardar ya que esta dentro del rango de otra. Agradesco su ayuda.

No está muy claro en que

Imagen de deathUser

No está muy claro en que momento se debe hacer la validación, si es con la base de datos es facil usando un BETWEEN ...
Trata de ponerlo más claro para que te puedan ayudar de mejor manera ...

bye
:)

Validacion

Imagen de Girl126

deathUser la validacion la debo hacer al momento de ingresar una nueva unidad tributaria, ese insert lo tengo como un store procedure en postgres, por tanto me imagino que esa validacion la debo hacer dentro del estore procedure donde hago la insercion, el lenguaje que utilizo es php 5. Gracias....

Atentamente Girl

Lenguaje

Imagen de Girl126

Hola neo el lenguaje que estoy utilizando es php 5, las fechas ya ingresadas estan guardadas en una tabla de postgres, el formato es aaaa-mm-dd

Atentamente Girl

pues si es en el stored

Imagen de deathUser

pues si es en el stored procedure, deber'ias hacer un select con un between de la fecha que est'as buscando y aplicar la l'ogica que necesitas, por ejemplo:


select count(*) from tabla where fecha between fecha1 and fecha2

Donde fecha es la fecha que quieres validar que no se encuentre en el intervalo entre fecha1 y fecha2, si te retorna 0 pues no est'a y si est'a en caso contrario (debra'ia retornar 1)

Espero te sea de utilidad.

bye
:)

Duda

Imagen de Girl126

Y ese select debo hacerlo antes del insert o despues; abajo muestro el store procedure para que me indiques como debe ser.

CREATE OR REPLACE FUNCTION ingresar(fechacomienzo date, fechafin date, valor numeric)
RETURNS "varchar" AS
$BODY$
declare
resultado varchar;
begin
INSERT INTO tabla (fechacomienzo, fechafin, valor)
VALUES (fechacomienzo, fechafin, valor);
resultado:='1';
return resultado;
end;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION ingresar(fechacomienzo date, fechafin date, valor numeric)

Gracias....

Atentamente Girl