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

MS SQL Server Discussion :

Récupérer premier jour de la semaine en cours?


Sujet :

MS SQL Server

  1. #1
    Membre extrêmement actif Avatar de cortex024
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 301
    Points : 1 119
    Points
    1 119
    Par défaut Récupérer premier jour de la semaine en cours?
    Bonjour,

    j'ai une requête, qui sort un tableau de résultat, avec 2 dates.

    cette requête doit sortir le résultat avec comme balise de départ le lundi de la semaine en cours, et comme balise de fin le dimanche inclus.

    comment réussir cela?

    il n'existe pas un espèce de "next_day" comme j'ai vu pour Oracle qui me permettrais de retrouver mon lundi à partir de la date courante?


    merci de vos réponses

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 356
    Points : 406
    Points
    406
    Par défaut
    Je te conseillerai de regarder les deux fonctions date suivantes :
    - DATEPART, donne le numéro du jourde la semaine
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select datepart(dw,getdate())
    - DATEDIFF, génère une nouvelle date à partir d'un entier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT dateadd(day, -7, getdate()) 
    ou
    SELECT dateadd(day, 4, getdate())
    A partir de ces deux fonctions, je pense que tu pourras t'en sortir.
    Bon courage pour la suite.

  3. #3
    Membre extrêmement actif Avatar de cortex024
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 301
    Points : 1 119
    Points
    1 119
    Par défaut
    effectivement...

    je poste toujours:


    SELECT dateadd (day, -datepart(dw,getdate())+1 , getdate()) as datedebdef FROM table_diverse


    sauf que j'ai l'heure courante avec, alors que je voudrais 0:00:00

  4. #4
    Membre régulier Avatar de DonkeyMaster
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 95
    Points : 110
    Points
    110
    Par défaut
    Si tu veux récupérer une variable de type datetime, alors je ne suis pas sûr de voir l'intérêt de mettre l'heure à 0:00:00. Tu peux toujours contrôler le format au moment de l'affichage, non?

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    declare @date datetime 
    set @date=CONVERT(varchar(8), GETDATE(), 112)

    Si tu veux récupérer une variable de type varchar, tu devrais regarder la fonction CONVERT

  5. #5
    Membre extrêmement actif Avatar de cortex024
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 301
    Points : 1 119
    Points
    1 119
    Par défaut
    non c'est pas de l'affichage...

    je veux baliser une requete pour prendre tous les résultats entre une date A et une date B.

    donc je veux que le time soit à 0:00:00 pour que ce soit correct.

    maintenant j'arrive à baliser:
    "premier jour du mois en cours - dernier jour du mois en cours"
    "lundi de la semaine en cours - lundi de la semaine suivante"
    "..."

    le seul truc qui m'embete c'est que getdate() me prend l'heure courante, donc dans mes conversions l'heure courante reste et je voudrais qu'elle soit à 0:00:00.

  6. #6
    Membre extrêmement actif Avatar de cortex024
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 301
    Points : 1 119
    Points
    1 119
    Par défaut
    CAST(FLOOR(CAST( MA_Date_Trouvée AS FLOAT)) AS DATETIME)


    en entourant MA_Date_Trouvée de cela, j'obtiens juste la date (et donc le time à 0:00:00)

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

Discussions similaires

  1. Récupérer le premier jour de la semaine
    Par kyra2778 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 05/02/2010, 15h11
  2. Réponses: 5
    Dernier message: 16/03/2009, 09h38
  3. Calendar : Récupérer le premier jour de la semaine
    Par Sinan dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 07/05/2007, 15h51
  4. [Dates] comment récupérer le jour de la semaine ?
    Par magic8392 dans le forum Langage
    Réponses: 5
    Dernier message: 13/09/2005, 15h01
  5. Récupérez premier jour de la semaine
    Par Krapulax dans le forum Requêtes
    Réponses: 1
    Dernier message: 07/10/2003, 17h18

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