IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

une requête : les 'id' dépassés depuis une date donnée.


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    Inscrit en
    Septembre 2003
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 2
    Points : 2
    Points
    2
    Par défaut une requête : les 'id' dépassés depuis une date donnée.
    Bonjour,

    je cherche une requête permettant de trouver les 'id' qui ont le champs 'date' (ex : 2002-03-11) dépassé depuis un an par rapport à la date en cours sur le serveur au moment de l'éxécution de la requête.

    base sous MySql

    exemple:
    id date
    1 2003-10-24
    2 2003-03-11
    3 2002-02-05
    4 2003-08-23

    nous sommes aujourd'hui 2003-09-10 les dates antérieures ou égales à 2002-09-10 sont périmés (un an de moins)
    ici l'id n° 3 est dépassé depuis 1 an et même +

    je ne trouve pas comment avoir la date en cours sur le serveur et faire une comparaison sur les dates enregistrées.

    merci

  2. #2
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    http://sqlpro.developpez.com/SQL_AZ_F.htm#FONCT_TEMP
    Essaye DATE_SUB pour soustraire un an à la date du jour.

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 847
    Points : 52 955
    Points
    52 955
    Billets dans le blog
    6
    Par défaut
    Soit ton SGBDR utilise le type INTERVAL et dans ce cas il faut faire :

    WHERE MaDate <= MaDate - INTERVAL 1 YEAR

    Soit il y a une fonction d'addition / soustration de partie de date :

    WHERE MaDate <= DATEADD(MaDate, Year, -1)

    Soit tu peut utiliser un castage

    WHERE Cast(MaDate as INTEGER) <= Cast(MaDate as INTEGER) - 365

    Soit tu peut utiliser des tables complémentaires de planning, dans ce cas, lire :
    http://sqlpro.developpez.com/Planning/SQL_PLN.html

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Candidat au Club
    Inscrit en
    Septembre 2003
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    le type interval marche très bien
    et la requête est impecable WHERE MaDate <= MaDate - INTERVAL 1 YEAR

    par contre MaDate dans "MaDate - INTERVAL 1" doit correspondre à la date en cours (la date du jour par exemple $ladate défini juste avant) et MaDate dans "WHERE MaDate <=" à la date dans la table, sinon ca ne marche pas et aucune date de MaDate ne se trouve antérieur à la date du jour moins 1 an.
    voila.

    merci pour aide.
    problème résolue

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 847
    Points : 52 955
    Points
    52 955
    Billets dans le blog
    6
    Par défaut
    WHERE MaDate <= CURRENT_DATE - INTERVAL 1 YEAR

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. faire une requête sur le résultat d'une requête
    Par clanou01 dans le forum Requêtes
    Réponses: 6
    Dernier message: 28/08/2012, 11h44
  2. [AC-2003] Requête pour sortir tous les enregistrements modifés depuis une date
    Par piercleo dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 07/01/2010, 15h08
  3. [SQL] Affichage d'une valeur depuis une requête
    Par kitty2006 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 19/09/2006, 16h38
  4. Trouver les fichiers modifiés depuis une date/heure précise
    Par sinok dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 18/07/2006, 17h56
  5. Comment gérer les valeur Nulles dans une requête ?
    Par sondo dans le forum Bases de données
    Réponses: 3
    Dernier message: 16/03/2005, 11h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo