Bonjour,
Je teste une requête pour calculer une différence de date en secondes par sqldevelopper :
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 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 ;
Le premier par exemple devrait donner une différence positive de 33 secondes mais il me donne -27 !
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 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
Partager