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 :

Retrouver le numéro de la semaine à partir d'une date


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 175
    Par défaut Retrouver le numéro de la semaine à partir d'une date
    Bonjour !
    J'aimerai effectuer une requête qui me permettrai de retrouver le numéro du week à partir d'une date donnée.
    Pouvez-vous m'aider sur ce point?
    Merci d'avance

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    381
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 381
    Par défaut
    Quelque chose comme ca ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select datepart(ww,getdate())

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 175
    Par défaut
    lol çà marche
    Merci beaucoup,

  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 998
    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 998
    Billets dans le blog
    6
    Par défaut
    ATTENTION : cette fonction est fausse, car elle numérote les semaines par rapport aux usage américains qui sont différents des notres.
    Notre numérotation est basée sur le norme ISO et ce n'est pas la même chose !

    Si vous voulez faire cela, utilisez la fonction suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    CREATE FUNCTION dbo.F_NUMERO_SEMAINE_ISO  (@JOUR datetime)
    RETURNS int
    AS
    BEGIN
     
       DECLARE @NSI int;
     
       SET @NSI = DATEPART(wk, @JOUR) + 1 - DATEPART(wk, CAST(DATEPART(yy, @JOUR) as CHAR(4)) + '0104');
     
    -- cas particuliers : du 1 au 3 janvier, le jour peut appartenir à la dernière semaine de l'année précédente
       IF @NSI = 0
          SET @NSI = dbo.dbo.F_NUMERO_SEMAINE_ISO(CAST(DATEPART(yy,@JOUR)-1 AS CHAR(4)) + '12' + CAST(24 + DATEPART(DAY, @JOUR) AS CHAR(2))) + 1;
     
    -- cas particuliers : du 29 au 31 décembre, le jour peut appartenir à la première semaine de l'année suivante
       IF (DATEPART(mm, @JOUR) = 12) AND ( (DATEPART(dd, @JOUR) - DATEPART(dw, @JOUR) ) >= 28 ) 
          SET @NSI = 1;
     
       RETURN @NSI;
     
    END
    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/ * * * * *

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    381
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 381
    Par défaut
    Bonjour SQLpro,

    Je dois travailler avec le numéro de semaine, et j'ai donc repris la fonction ci-dessus, mais...

    je suis un peu intrigué.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT datepart(ww,getdate())
    m'indique qu'on est en semaine 11

    et la fonction ci-dessus m'indique qu'on est en semaine 10

    Or d'après mon agenda, on est dans la 11eme semaine.


    N'y a-t-il pas une erreur quelque part ?

  6. #6
    Membre expérimenté
    Inscrit en
    Février 2009
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 224
    Par défaut
    Bonjour,
    Cette année la première semaine compte bien 4 jours (jeudi au dimanche) si vous êtes en usage FR Plus de détail sur la numérotation des semaines:
    http://fr.wikipedia.org/wiki/Num%C3%...O_des_semaines
    Quel est votre langue d'installation pour SQL Serverur (Français ou Angalis)
    et quel est le premier jour de la semaine (normalement en France c'est Lundi (1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select @@datefirst

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

Discussions similaires

  1. Déduire numéro de la semaine à partir d'une date
    Par Julien1504 dans le forum Développement de jobs
    Réponses: 6
    Dernier message: 10/09/2013, 14h18
  2. Déduire le numéro de la semaine à partir d'une date
    Par Julien1504 dans le forum Développement de jobs
    Réponses: 7
    Dernier message: 14/08/2013, 14h00
  3. retrouver le numéro de la semaine à partir d'une date
    Par christophe_halgand dans le forum MATLAB
    Réponses: 3
    Dernier message: 18/01/2008, 11h38
  4. le numéro d'une semaine à partir d'une date
    Par crazydede8 dans le forum C++
    Réponses: 5
    Dernier message: 22/09/2006, 20h27
  5. Réponses: 14
    Dernier message: 01/06/2006, 17h32

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