pggeodb.nancy.inra.fr/db_cefs - db_cefs on pggeodb.nancy.inra.fr
Previous topic Chapter index Next topic

Function: ps_suivi3h

 

 

Schema

public

 

Owner

postgres

 

Descriptions

Function renvoyant vrai si le paramètre pheure correspond à un suivi 3 heures (0,3,6,9,12,15,18,21 heure) avec la précision de ptolerance (second paramètre) minute

 

Options

Option

Value

Returns

boolean

Language

plpgsql

Parameters

pheure time

ptolerance integer

 

Definition

CREATE OR REPLACE FUNCTION public.ps_suivi3h (
 pheure time,
 ptolerance integer
)
RETURNS boolean AS
$span$
DECLARE

nb_heure REAL;
nb_minute REAL;
deltaavantheure integer;

BEGIN
deltaavantheure = 60 - ptolerance;
   SELECT date_part('hour' ::text, pheure ::"time") into nb_heure;   
   SELECT date_part('minute' ::text, pheure ::"time")into nb_minute;   

   if ((nb_heure = 0) and (nb_minute < ptolerance)) or ((nb_heure = 23) and (
   nb_minute >= deltaavantheure)) then
       return true
;
   end if;
   
   if ((nb_heure = 3) and (nb_minute < ptolerance)) or ((nb_heure = 2) and (
   nb_minute >= deltaavantheure)) then
       return true
;
   end if;
   
   if ((nb_heure = 6) and (nb_minute < ptolerance)) or ((nb_heure = 5) and (
   nb_minute >= deltaavantheure)) then
       return true
;
   end if;

   if ((nb_heure = 9) and (nb_minute < ptolerance)) or ((nb_heure = 8) and (
   nb_minute >= deltaavantheure)) then
       return true
;
   end if;
   
   if ((nb_heure = 12) and (nb_minute < ptolerance)) or ((nb_heure = 11) and (
   nb_minute >= deltaavantheure)) then
       return true
;
   end if;
   
   if ((nb_heure = 15) and (nb_minute < ptolerance)) or ((nb_heure = 14) and (
   nb_minute >= deltaavantheure)) then
       return true
;
   end if;

   if ((nb_heure = 18) and (nb_minute < ptolerance)) or ((nb_heure = 17) and (
   nb_minute >= deltaavantheure)) then
       return true
;
   end if;
   
   if ((nb_heure = 21) and (nb_minute < ptolerance)) or ((nb_heure = 20) and (
   nb_minute >= deltaavantheure)) then
       return true
;
   end if;

-- autres cas
   return FALSE;    
EXCEPTION
WHEN
OTHERS THEN
raise notice
'heure : % - % ', pheure,nb_heure;
 return false;
END;
$span$
LANGUAGE
'plpgsql'
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER
COST
100;

COMMENT ON FUNCTION public.ps_suivi3h(pheure time, ptolerance integer)
IS 'Function renvoyant vrai si le paramètre pheure correspond à un suivi 3 heures (0,3,6,9,12,15,18,21 heure) avec la précision de ptolerance (second paramètre) minute';

This file was generated with SQL Manager for PostgreSQL (www.pgsqlmanager.com) at 13/03/2014 13:23
Previous topic Chapter index Next topic