Différence de dates incompréhensible?
Bonjour,
Je teste une requête pour calculer une différence de date en secondes par sqldevelopper :
Code:
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:
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 :calim2:
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