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

Développement SQL Server Discussion :

Date du jour et Date n-1


Sujet :

Développement SQL Server

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 34
    Points : 20
    Points
    20
    Par défaut Date du jour et Date n-1
    Bonjour ,

    Je dois faire une requete une qui me ramene l'ensemble des activités créés depuis le début de l'année derniere(01/01/2009) à aujourd'hui. Sa doit etre dynamique aucune date ne doit etre mise en dure (pas de condition de type date = '2009-01-01' ) .


    Je galere grave avec les fonctions datepart() et getdate() . Je travaille sur sqlserver 2005 .
    Si quelqu'un peu m'aider merci

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 135
    Points : 164
    Points
    164
    Par défaut
    une condition comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    tadate>=cast(  cast(datepart(year,tadate)-1 as varchar(4))+'-01-01' 
                        as  smalldatetime)

  3. #3
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Vous pouvez utiliser directement la fonction YEAR() et le format ISO de dates (sans les tirets et standard) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @taDate >= CAST(CAST(YEAR(GETDATE()) AS CHAR(4)) + '0101' AS DATETIME)
    Type DATETIME ou SMALLDATETIME suivant le type de votre colonne

    @++

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 865
    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 865
    Points : 53 019
    Points
    53 019
    Billets dans le blog
    6
    Par défaut
    Plus simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE YEAR(madate) >= YEAR(CURRENT_TIMESTAMP) - 1
    A +

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 34
    Points : 20
    Points
    20
    Par défaut
    Merci

    Suite a votre aide j'ai elaborer une autre requete celle ci doit me ramener les activités du debut de l'année derniere à (aujourd'hui) de l'année derniere (le meme jour qu'aujourd'hui de l'année derniére) . mais j'ai un probleme de conversion voici ma requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT company_id, count(meeting_id) as 'Number'  FROM Meeting_Contact_Attendee MCA
    			INNER JOIN RN_Appointments RNA ON MCA.Meeting_Id = RNA.Rn_Appointments_Id AND RNA.Activity_Type = 0 AND Activity_Complete = 1 		  
     
    			WHERE RNA.Activity_Completed_Date >= CAST(CAST(YEAR(GETDATE())-1 AS CHAR(4)) + '0101' AS DATETIME)
                AND RNA.Activity_Completed_Date <= CAST(CAST(YEAR(GETDATE())-1 AS CHAR(4)) + CAST(MONTH(GETDATE()) AS CHAR(4))+ CAST(DAY(GETDATE()) AS CHAR(4)) AS DATETIME) 
                GROUP BY company_id

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 386
    Points
    18 386
    Par défaut
    Utilisez la fonction DATEADD pour soustraire une année :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select dateadd(year, -1, cast(floor(cast(GETDATE() as float)) as datetime)) as dt_last_year;
     
    dt_last_year
    -----------------------
    2009-03-01 00:00:00.000

  7. #7
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 34
    Points : 20
    Points
    20
    Par défaut
    Merci

  8. #8
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Points : 1 234
    Points
    1 234
    Par défaut


    Habituellement on tronque ue date de la sorte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DATEADD(yyyy, DATEDIFF(yyyy, 0, GETDATE()), 0)
    yyyy : tronqué à l'année
    mm : " au mois
    dd : " à la journée

    etc.

Discussions similaires

  1. comparer date du jour avec date base mysql
    Par kate59 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 25/05/2011, 17h28
  2. Soustraire 7 jours à la date du jour
    Par urbanspike dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 11/08/2010, 19h27
  3. découper une chaine de dates à partir de la date du jour
    Par clavier12AZQSWX dans le forum Général Python
    Réponses: 6
    Dernier message: 12/06/2009, 15h17
  4. [E-07] Date du jour dans Date Picker
    Par chriscamp dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/03/2009, 10h38
  5. Réponses: 2
    Dernier message: 19/02/2009, 20h32

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