Controle de date

Résolu
djbenji81100 Messages postés 66 Date d'inscription vendredi 9 septembre 2011 Statut Membre Dernière intervention 4 juin 2012 - 3 juin 2012 à 14:57
djbenji81100 Messages postés 66 Date d'inscription vendredi 9 septembre 2011 Statut Membre Dernière intervention 4 juin 2012 - 4 juin 2012 à 12:18
Bonjour,

j'ai actuellement un petit probleme sur une procedure stockée qui effectue un controle sur une deux dates ( pour voir si les dates rentrée en parametre pour un numéro d'emplacement de camping , ne ce trouvent pas entre la date de début et la date de fin de chaques enregistrements pour ce même numero d'emplacement ) j'espere que c'est compréhensible ^^'.

Donc voila la procédure.

CREATE OR REPLACE FUNCTION date_deja_prise(in date_de_debut date, in date_de_fin date, in num_emplacement integer) RETURNS integer AS $$

declare curseur1 cursor for select la_date_debut from reservation where code_empl = num_emplacement;
declare curseur2 cursor for select la_date_fin from reservation where code_empl = num_emplacement;

declare

succes integer;
date_deb date;
date_f date;

begin

succes = 1;

open curseur1;
open curseur2;

fetch curseur1 into date_deb;
fetch curseur2 into date_f;

  While 'date_deb' is not  null and date_f is not null and succes <> -1 loop

      if 'date_de_debut' is between 'date_deb' and 'date_f' then
   
     succes = -1;

  else
 
     if 'date_de_din' is between 'date_deb' and 'date_f' then
   
        succes = -1;
  
     end if;

  end if;
  
  fetch curseur1 into date_deb;
      fetch curseur2 into date_f;
  
end loop;
close curseur1;
close curseur2;

return succes;

end;

$$  LANGUAGE plpgsql


donc c'est la premeire fois que j'effectue un controle come celui ci donc je ne sait pas si ce que j'ai fait est bon ou pas .

il y as deux conditions que regarde grace a un between si les dates rentrées en paramaetre ne ce trouve pas entre les date enregistrée dans la BD pour chaque enregistrement pour le numero d'emplacement rentrée lui aussi dans les paramètres.

Ca bloque a ce niveau la . lorque j'essaye de l'executer il me mets qu'il y as une erreur de syntaxe au niveau des between .

Quelqu'un sait t'il d'ou cela peu venir ?

Merci d'avance =)

2 réponses

cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
4 juin 2012 à 11:00
Salut,

je ne suis pas un expert PL, et je ne connais pas les spécificités de PostgreSQL, toutefois dans une requête "normale" SQL, il ne faut pas de is avant le BETWEEN. Une piste à suivre peut-être.
3
djbenji81100 Messages postés 66 Date d'inscription vendredi 9 septembre 2011 Statut Membre Dernière intervention 4 juin 2012
4 juin 2012 à 12:18
Exact de suite a requete est accepté . Merci beaucoup
0
Rejoignez-nous