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

  1. bonjour

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

      ALors ma dAte est sous format TIMESTAMP ex: 01/09/09 09:16:08,00000
      0
  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
    0
    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
      0
  3. 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
    0
    1. Apparament sql ne reconnait pas Datediff :"ORA-00904: "DATEDIFF" : identificateur non valide "
      0
    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
      0
    3. @Jean_JacquesPeut-etre est-ce le format de mes dates (timestamp) qui ne convient pas...
      0
  4. 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+
    0
    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
      0
      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
        0
        1. Ghislain22, le 23 nov 2009 à 17:42:54

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

          Au plaisir
          0