Controle de date [Résolu]

djbenji81100 66 Messages postés vendredi 9 septembre 2011Date d'inscription 4 juin 2012 Dernière intervention - 3 juin 2012 à 14:57 - Dernière réponse : djbenji81100 66 Messages postés vendredi 9 septembre 2011Date d'inscription 4 juin 2012 Dernière intervention
- 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 =)
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
cs_jopop 1540 Messages postés lundi 26 mai 2003Date d'inscription 1 août 2013 Dernière intervention - 4 juin 2012 à 11:00
3
Merci
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.

Merci cs_jopop 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 125 internautes ce mois-ci

Commenter la réponse de cs_jopop
djbenji81100 66 Messages postés vendredi 9 septembre 2011Date d'inscription 4 juin 2012 Dernière intervention - 4 juin 2012 à 12:18
0
Merci
Exact de suite a requete est accepté . Merci beaucoup
Commenter la réponse de djbenji81100

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.