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 :

DATEPART indépendant de DATEFIRST


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Inscrit en
    Juin 2006
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 229
    Par défaut DATEPART indépendant de DATEFIRST
    Bonjour,

    Je voudrais utiliser la fonction DATEPART en considérant que le lundi est toujours le premier jour de la semaine.
    Je crois qu'il y a moyen de se passer de SET DATEFIRST (qui ne fonctionne pas dans une UDF, et c'est là que j'utilise DATEPART dans mon cas). A grand coup de modulo, ça doit marcher.

    Par exemple, j'ai trouvé sur le net la formule suivante :

    @weekDay = Select ((DatePart(dw,GETDATE())+@@DATEFIRST-7)%7)

    Mais c'est pour simuler un @@DATEFIRST = 7 et ça marche bof...

    Connaissez-vous la formule magique ?

    Merci

  2. #2
    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
    Par défaut
    Bonjour,

    Essayez ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT (DATEPART(dw,GETDATE()) +  @@DATEFIRST - 1) % 7
    ça fonctionne avec n'importe quelle SET DATEFIRST

  3. #3
    Membre expérimenté
    Inscrit en
    Juin 2006
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 229
    Par défaut
    Oui ! Mais pour le dimanche ça renvoie 0.

    Au final, ça donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    DECLARE @D AS SMALLDATETIME
    DECLARE @JOUR AS TINYINT
     
    SET @D = '20080909'
     
    SELECT @JOUR = (DATEPART(dw, @D) +  @@DATEFIRST - 1) % 7
    IF @JOUR = 0 SET @JOUR = 7
     
    SELECT @JOUR
    Merci ;-)

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

Discussions similaires

  1. [DROIT] Consultant indépendant et Assedics
    Par BuLma dans le forum Licenciement
    Réponses: 12
    Dernier message: 14/12/2003, 01h25
  2. [SQL] Compter des champs indépendement l'un de l'autre
    Par rippey dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 29/10/2003, 15h35
  3. [Migratation] Application portable, indépendant du SGDB
    Par benouille dans le forum Décisions SGBD
    Réponses: 6
    Dernier message: 28/08/2002, 13h51
  4. Cherche composant Web Browser indépendant
    Par lancelot69 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 31/07/2002, 11h14

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