Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
920 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  soustraction de date

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

soustraction de date

n°635812
ciloute
Posté le 09-02-2004 à 12:22:43  profilanswer
 

Comment fait on une soustraction de 2 dates dans une base oracle; avec quelle fonction faut il convertir les dates

mood
Publicité
Posté le 09-02-2004 à 12:22:43  profilanswer
 

n°635820
Mara's dad
Yes I can !
Posté le 09-02-2004 à 12:27:44  profilanswer
 

Impossible de répondre à cette question :
Tu veux quoi en sortie, des siècles ou des femtosecondes ?


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°635822
ciloute
Posté le 09-02-2004 à 12:33:58  profilanswer
 

J'ai besoin de soustraire 15/02/2004 à 01/01/2004 pour obtenir le nombre de jour entre les 2 dates

n°635836
Mara's dad
Yes I can !
Posté le 09-02-2004 à 12:49:08  profilanswer
 

Citation :

Date Arithmetic
 
You can add and subtract number constants as well as other dates from dates. Oracle interprets number constants in arithmetic date expressions as numbers of days. For example, SYSDATE + 1 is tomorrow. SYSDATE - 7 is one week ago. SYSDATE + (10/1440) is ten minutes from now. Subtracting the hiredate column of the emp table from SYSDATE returns the number of days since each employee was hired. You cannot multiply or divide DATE values.


 
Donc il te suffit de faire Date2 - Date1, et le résultat sera un nombre exprimé en jours.


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°636049
ciloute
Posté le 09-02-2004 à 14:56:12  profilanswer
 

si je veux soustraire une date avec la date du jour
 
j'ai fait DateMaj-sysdate
 
mais je n'obtiens pas le bon nombre de jours
 
Comment fait on ?

n°636064
Mara's dad
Yes I can !
Posté le 09-02-2004 à 15:06:08  profilanswer
 

Exemple...


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°636073
ciloute
Posté le 09-02-2004 à 15:14:56  profilanswer
 

Exemple: 28/02/2004 - 09/02/2004
 
 
09/02/2004 correspond à la date d'aujourd'hui
 
 

n°636137
Mara's dad
Yes I can !
Posté le 09-02-2004 à 16:12:10  profilanswer
 

et ca donne ... au lieu de ...


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°636143
dalcap
Posté le 09-02-2004 à 16:16:02  profilanswer
 

ciloute a écrit :

si je veux soustraire une date avec la date du jour
 
j'ai fait DateMaj-sysdate
 
mais je n'obtiens pas le bon nombre de jours
 
Comment fait on ?


 
sysdate-DateMaj :??:
 
désolé, j'ai mal lu l'exemple, j'avais lu 28/02/2003 - sysdate


Message édité par dalcap le 09-02-2004 à 17:08:13
n°636172
ciloute
Posté le 09-02-2004 à 16:41:34  profilanswer
 

par exemple, si je mets 09/02/2004 - 09/02/2004 j'obtiens 0.69 au lieu de 0
 
si je mets 08/03/2004- 09/02/2004 j'obtiens 27.31 au lieu de 28
 
Que faire ?

mood
Publicité
Posté le 09-02-2004 à 16:41:34  profilanswer
 

n°636187
ciloute
Posté le 09-02-2004 à 16:47:43  profilanswer
 

je pense qu'il prend en compte aussi l'heure, je souhaiterai seulement comparé les dates

n°636193
Mara's dad
Yes I can !
Posté le 09-02-2004 à 16:51:06  profilanswer
 

Et bien en fait il faut comprendre que sysdate ne te donne pas 09/02/2004, mais 09/02/2004 16:44:21
Le nombre de jours tient compte de l'heure.
Par exemple, 1.5 jours, c'est 36 heures.
Donc tu doit comparer avec la date du jour à minuit, par exemple
 
MaDate - TO_DATE( TO_CHAR( SYSDATE, "DD/MM/YYYY" ) )
 
:D


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°636203
Mara's dad
Yes I can !
Posté le 09-02-2004 à 16:56:48  profilanswer
 

Autre solution, tu prend l'entier supérieur le plus proche du nombre que tu as.
Exemple :
CEIL( TO_DATE( "10/02/2004", "DD/MM/YYYY" ) - SYSDATE ) -> 1 :D
Mais bon, c'est moins propre...


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°638198
black_lotu​s
Posté le 10-02-2004 à 22:38:20  profilanswer
 

personnellement je fais comme ça sous oracle
 
to_char(sysdate,'J')
 
ou bien  
 
to_char(to_date('01/01/2004','DD/MM/YYYY'),'J')
 
ça fait bien des comptes en jour et ne tient pas compte des heures..
 
J = Julian date = nb de jours écoulés depuis une date précise...
 
C'est assez performant car je suis ammenée à faire des comptages serrés sur des volumes de 50000 à 70000 enregistrements


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  soustraction de date

 

Sujets relatifs
Date DOSConvertir un String en Date
[ASP+VBSCRIPT] Conversion d'une date (2/9/2004 --> 02/09/2004)[Résolu] - [Perl] nommer un repertoire par la date en cours
[MySQL] cherche doc ou tuto sur les DATE et TIMEdate dans un formualire
[PHP] Afficher dateconversion date
[PHP-MySQL] Récupérer la date de dernière modif. de la DB ??addition de date
Plus de sujets relatifs à : soustraction de date


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR