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

Bases de données Delphi Discussion :

Récupérer les dates de l'année en cours sur SQL Server


Sujet :

Bases de données Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 33
    Points : 22
    Points
    22
    Par défaut Récupérer les dates de l'année en cours sur SQL Server
    Salut à tous,

    Je travail sur delphi avec sql server 2005, et il faut que je puisse selectionner que les dates de l'année en cours et non celles des autres années.

    Merci d'avance pour votre aide.

    and

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Il existe des petites variations syntaxiques suivant les SGBD, connaissant très peu SQL Server, je te suggère tout de même ceci:

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT F1, F2, F_DATE
    FROM T1
    WHERE
      YEAR(F_DATE) = 2008

    @+ Claudius

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 33
    Points : 22
    Points
    22
    Par défaut
    d'accord pour l'année 2008 mais si on est en 2009 il faut que ça prenne les dates de l'année 2009 et ainsi de suite...sysdate ça pourrait marcher?

  4. #4
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WHERE
      YEAR(F_DATE) = YEAR(CURRENT_DATE)
    ?

  5. #5
    Expert confirmé

    Profil pro
    Leader Technique
    Inscrit en
    Juin 2005
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Leader Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 756
    Points : 4 173
    Points
    4 173
    Par défaut
    Si tu veux avoir des perfs correctes pour tes requêtes, il faut absoluement éviter de faire des recherches sur le résultat d'un calcul.

    Donc il vaut mieux chercher les dates comprises entre le début de l'année en cours et le début de l'année suivante :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    select *
    from MaTable
    where 
      MaDate >= cast(cast(year(getdate()) as varchar(4)) + '0101' as datetime) and  -- Date postérieur à l'année en cours
      MaDate < cast(cast(year(getdate())+1 as varchar(4)) + '0101' as datetime) -- et strictement antérieure à l'année suivante.

    De cette façon SQL Server pourra utiliser les indexes sur le champ MaDate.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 33
    Points : 22
    Points
    22
    Par défaut
    ça marche, merci votre aide..

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 30/09/2009, 18h13
  2. Réponses: 0
    Dernier message: 30/09/2009, 18h13
  3. Réponses: 1
    Dernier message: 04/04/2007, 13h43
  4. [Requête]Afficher les enregistrements de l'année en cours
    Par holodev dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 21/03/2007, 11h29
  5. Réponses: 8
    Dernier message: 26/08/2006, 11h13

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