Vous n'êtes pas identifié(e).
Pages : 1
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
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.
Julien.
https://rjuju.github.io/
Hors ligne
Pages : 1