Vous n'êtes pas identifié(e).

#1 03/07/2018 16:30:46

Mlan2
Membre

Opérations sur variable de type timestamp

Bonjour à tous,


Je désespère de ne trouver aucun exemple simple à mon problème tout aussi simple.

Je voudrai connaître le temps de l'ordre du milliseconde entre 2 variables de type timestamp.

Ci-dessous, le code en exemple que j'utilise :


DO
$$
DECLARE

  HDEB     TIMESTAMP;
  HFIN     TIMESTAMP;
  HREQ     TIMESTAMP;

BEGIN

  HDEB := TO_TIMESTAMP ('2018-07-02 10:11:09.758', 'YYYY-MM-DD HH24:MI:SS.MS');
  HFIN := TO_TIMESTAMP ('2018-07-02 10:11:17.309', 'YYYY-MM-DD HH24:MI:SS.MS');

  HREQ := HFIN - HDEB;

END
$$;

L'erreur se trouve à la ligne d'instruction : HREQ := HFIN - HDEB;

ERREUR:  syntaxe en entrée invalide pour le type timestamp : « 00:00:07.551 »
CONTEXT:  fonction PL/pgsql inline_code_block, ligne 13 à affectation
********** Erreur **********

ERREUR: syntaxe en entrée invalide pour le type timestamp : « 00:00:07.551 »
État SQL :22007
Contexte : fonction PL/pgsql inline_code_block, ligne 13 à affectation

D'avance merci pour votre aide.

Hors ligne

#2 03/07/2018 17:55:31

rjuju
Administrateur

Re : Opérations sur variable de type timestamp

Bonjour,

La soustraction entre 2 timestamp n'est pas un timestamp mais un interval.  Si vous voulez savoir le type retourné par une opération, vous pouvez utiliser la fonction pg_typeof.  Par exemple :

# select pg_typeof(now() - now());
 pg_typeof 
-----------
 interval
(1 row)

Il vous suffit donc de modifier HREQ pour être de type interval.

Hors ligne

Pied de page des forums