Bonjour,

Je teste une requête pour calculer une différence de date en secondes par sqldevelopper :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
 
select ((to_char(DATE1,'J')-to_char(to_date('01/01/1970','dd/mm/yyyy'),'J')) *    86400) + to_char(DATE1,'SSSSS') as TS1,to_char(DATE1,'DD/MM/YYYY HH24:MM:SS') as DATE1,
          ((to_char(DATE2,'J')-to_char(to_date('01/01/1970','dd/mm/yyyy'),'J')) *    86400) + to_char(DATE2,'SSSSS') as TS2,to_char(DATE2,'DD/MM/YYYY HH24:MM:SS') as DATE2, round((DATE1-DATE2)*86400) as DIFF  from MATABLE ;
et j'ai des résultats "parfois" débiles... d'où ma tentative d'affichage en timestamp pour l'expliquer... ( dsl pour l'alignement)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
 
TS1             	DATE1	                TS2            	DATE2	                DIFF
1514881793	02/01/2018 08:01:53	1514881820	02/01/2018 08:01:20	-27
1514881823	02/01/2018 08:01:23	1514881833	02/01/2018 08:01:33	-10
1514881853	02/01/2018 08:01:53	1514881880	02/01/2018 08:01:20	-27
1514881913	02/01/2018 08:01:53	1514881920	02/01/2018 08:01:00	-7
1514881973	02/01/2018 08:01:53	1514882003	02/01/2018 08:01:23	-30
1514882003	02/01/2018 08:01:23	1514882004	02/01/2018 08:01:24	-1
1514882003	02/01/2018 08:01:23	1514882006	02/01/2018 08:01:26	-3
1514882003	02/01/2018 08:01:23	1514882008	02/01/2018 08:01:28	-5
1515582934	10/01/2018 11:01:34	1515582901	10/01/2018 11:01:01	33
1515582930	10/01/2018 11:01:30	1515582894	10/01/2018 11:01:54	36
1515592036	10/01/2018 13:01:16	1515592011	10/01/2018 13:01:51	25
....
Le premier par exemple devrait donner une différence positive de 33 secondes mais il me donne -27 !
Le 2eme fonctionne...
Le 4eme a complètement bu ...
etc...
Certains fonctionnent et d'autre pas...

Mais par contre si on fait l'opération sur les TS le résultat s'explique mieux ... mais les lignes 3/4/5 ont la même heure et pas le même TS...

Un peu déboussolée la madame

Est ce que ce serait un paramétrage de bdd que je connais pas qui ferait que mes dates n'ont pas la précision voulue pour faire des différences à la seconde?

Merci pour votre aide