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

Function: ps_normalise_interval

 

 

Schema

public

 

Owner

postgres

 

Descriptions

Procédure qui retourne une valeur normalisée représentant un nombre de minutes pour l'intervalle passé en paramètre.

 

Options

Option

Value

Returns

integer

Language

plpgsql

Parameters

interval_param interval

 

Definition

CREATE OR REPLACE FUNCTION public.ps_normalise_interval (
 interval_param interval
)
RETURNS integer AS
$span$
DECLARE

 nb_jour REAL;
 nb_heure REAL;
 nb_minute REAL;
 
BEGIN
    SELECT
date_part('day' ::text, interval_param ::"interval")
    into nb_jour;   
    SELECT date_part('hour' ::text, interval_param ::"interval")
    into nb_heure;   
    SELECT date_part('minute' ::text, interval_param ::"interval")
    into nb_minute;   
   if nb_jour > 0 THEN
       return
0;
   end if;
   if ((nb_heure = 6) and (nb_minute < 7)) or ((nb_heure = 5) and (
   nb_minute > 53)) then
       return
360;
   end if;
   if ((nb_heure = 4) and (nb_minute < 7)) or ((nb_heure = 3) and (
   nb_minute > 53)) then
       return
240;
   end if;
   if ((nb_heure = 3) and (nb_minute < 7)) or ((nb_heure = 2) and (
   nb_minute > 53)) then
       return
180;
   end if;

   if ((nb_heure = 1) and (nb_minute < 7)) or ((nb_heure = 0) and (
   nb_minute > 53)) then
       return
60;
   end if;
   if ((nb_heure = 0) and (nb_minute < 14) and (nb_minute > 6)) then
       return
10;
   end if;
       
   return 0;

EXCEPTION
WHEN
OTHERS THEN
raise notice
'interval : %', interval_param;
 return 99;
END;
$span$
LANGUAGE
'plpgsql'
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER
COST
100;

COMMENT ON FUNCTION public.ps_normalise_interval(interval_param interval)
IS 'Procédure qui retourne une valeur normalisée représentant un nombre de minutes pour l''intervalle passé en paramètre.';

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