Difference de date

Bonjour,

Je voudrais obtenir tous les objets loués dont la location est supérieure à 24h (ou 1 jour)

Un truc du genre SELECT * FROM Location where (sysdate-DateLocation)>1;

On peut utiliser Datediff peut etre?

Merci de m'éclairer
Configuration: Windows XP Internet Explorer 7.0

8 réponses

  • Votes
  • Date
  • Date décroissante
  1. Ghislain22, le 23 nov 2009 à 17:42:54

    Je n'ai pas perdu de temps, j'ai appris beaucoup de choses.

    Au plaisir
    1. Merci beaucoup j'ai trouvé mon bonheur avec sysdate-1

      Merci de votre aide précieuse et de votre temps passé à m'aider Jean-Jacques

      Cordialement

      Ghislain22
      1. alors j'ai trouvé une solution de rechange il s'agit de: months_between(date1, date2)

        L'inconvénient est que pour avoir les valeurs supérieures à 24h de dois mettre where months_between(date1, date2)>(1/30) (((ou 1/31 ou 1/29 suivant le mois )

        C'est pas super satisfaisant mais je m'en contente pour l'instant
        1. Ghislain22,

          - En effet, c'est une hypothèse à envisager. Toutefois ce serait "insolite".
          - SQL a une vocation universelle, sinon infaillible.....

          Dans la journée, je vais fureter sur le net pour essayer de trouver un commentaire ou une explication à ce sujet.

          A+
          1. Bonjour Ghislain22,

            Voici le lien que j'ai mis de côté [pour le cas où] j'aurais à traiter le sujet timestamp (autrement dit, je n'y connais rien) . Je vous laisse le soin de le découvrir.

            http://lwest.free.fr/doc/php/lib/date-fr.html#sec_14

            Formattage & Affichage
            Format( string format, int timestamp )
            Cette méthode renvoie la date timestamp formattée selon le format indiqué
            Methode statique, conçue pour formatter plusieurs dates sans devoir instancier un objet Date a chaque fois:
            $today = Date::Format( "%a %d %m %Y", time() );
            $yesterday = Date::Format( "%a %d %m %Y", time() - SEC_DAY );

            Bonne journée
            1. Apparament sql ne reconnait pas Datediff :"ORA-00904: "DATEDIFF" : identificateur non valide "
            2. @Ghislain22Bonjour Ghislain22,

              La version SQL dont je dispose sous ACCESS 2000 donne toute satisfaction.
              Dans votre code 'd' est-il bien présent ?

              Un site de référence SQL :
              http://www.ianywhere.com/developer/product_manuals/sqlanywhere/0901/fr/html/dbrffr9/00000157.htm

              Cordialement
            3. @Jean_JacquesPeut-etre est-ce le format de mes dates (timestamp) qui ne convient pas...
          2. Bonjour Ghislain22,

            Sauf erreur, voilà ce qu'il vous faut.
            NB : 'd' est l'argument qui demande lécart de date exprimé en jours (day).
            Vous devriez pouvoir adapter sans trop de difficultés la syntaxe à votre cas.

            SELECT [<Table>.<Champ>], [<Table>.<Champ_date>], DateDiff('d',[<Champ_date>],Now()) AS [Dépassé > 1 jour] FROM [<Table>]
            WHERE (((DateDiff('d',[<Champ_date>],Now()))>1));

            Cordialement
            1. Merci Jean-Jacques de votre aide; j'essaierai votre méthode lundi!

              J'en profite pour vous poser une petite question: pour mes dates j'utilise le format timestamp : ex 01/09/2009 09:15:98,00000. Connaissez vous/Existe-t-il une option qui puisse enlever ces '00000' correspondant aux "fractional_seconds_precision" et ainsi soigner la présentation?

              Merci d'avance
          3. bonjour

            Sous quel format est ta date location
            1. Merci de m'aider!

              ALors ma dAte est sous format TIMESTAMP ex: 01/09/09 09:16:08,00000