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 :

Premier jour du mois en cours


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Avril 2010
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Avril 2010
    Messages : 135
    Points : 65
    Points
    65
    Par défaut Premier jour du mois en cours
    Bonjour à vous,

    Je souhaiterais récupérer la date du premier jour du mois courant.

    Par exemple, en ce moment (mois de septembre), je voudrais '01/09/10'.
    Pour le mois de mai 2011, récupérer '01/05/11' etc....

    Je lutte sur les formats de date, et du coup je ne récupère pas de requête correcte.

    Help please !

    Merci par avance

  2. #2
    Membre chevronné

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2007
    Messages : 1 216
    Points : 1 758
    Points
    1 758
    Par défaut
    Bonjour,

    Vous pouvez utiliser ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Select cast(YEAR(getdate()) + MONTH(getdate()) + '01' as datetime)
    Edit:

    Ou plutot ceci si le format est important:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Select convert(datetime,YEAR(getdate()) + MONTH(getdate()) + '01', 103)

  3. #3
    Membre du Club
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Avril 2010
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Avril 2010
    Messages : 135
    Points : 65
    Points
    65
    Par défaut
    ça m'affiche l'erreur: Le type date n'est pas un type défini par le système

  4. #4
    Membre chevronné

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2007
    Messages : 1 216
    Points : 1 758
    Points
    1 758
    Par défaut
    Remplacez date par datetime dans ce cas...

  5. #5
    Membre du Club
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Avril 2010
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Avril 2010
    Messages : 135
    Points : 65
    Points
    65
    Par défaut
    Merci

    J'ai utilisé:

    SELECT convert(VARCHAR(8),getdate(),103)

  6. #6
    Membre du Club
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Avril 2010
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Avril 2010
    Messages : 135
    Points : 65
    Points
    65
    Par défaut
    C'est pas la bonne requête
    Elle me récupère la date d'aujourd'hui et pas le premier du mois courant !

  7. #7
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 711
    Points : 4 797
    Points
    4 797
    Par défaut
    Bon alors voilà la formule magique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT CONVERT(DateTime,CONVERT(varchar(7),GETDATE(),120) + '-01',120)
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  8. #8
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 711
    Points : 4 797
    Points
    4 797
    Par défaut
    Petite explication :
    SELECT GETDATE()
    -> 2010-10-04 10:32:26.197
    L'idée est de convertir en chaîne au "format 120" (voir doc) la date du jour
    et d'en extraire les 7 premiers caractères (varchar(7))
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT CONVERT(varchar(7),GETDATE(),120)
    -> 2010-10
    Ensuite on ajoute '-01' au bout et on reconverti en date :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT CONVERT(DateTime,CONVERT(varchar(7),GETDATE(),120) + '-01',120)
    -> 2010-10-01 00:00:00.000
    et hop !
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  9. #9
    Membre du Club
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Avril 2010
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Avril 2010
    Messages : 135
    Points : 65
    Points
    65
    Par défaut
    Merci pour ta réponse et tes explications

    J'ai trouvé une autre formule magique
    Select SUBSTRING(CONVERT(varchar(8), GETDATE(), 112), 1, 6) + '01'

  10. #10
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Une petite précision :
    Avec ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select SUBSTRING(CONVERT(varchar(8), GETDATE(), 112), 1, 6) + '01'
    la sortie est varchar

    par contre avec ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select convert(datetime,SUBSTRING(CONVERT(varchar(8), GETDATE(), 112), 1, 6) + '01')
    la sorte est datetime

    A+
    Etienne ZINZINDOHOUE
    Billets-Articles

  11. #11
    Membre du Club
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Avril 2010
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Avril 2010
    Messages : 135
    Points : 65
    Points
    65
    Par défaut
    Merci pour cette utile précision

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

Discussions similaires

  1. Premier jour du mois en cours
    Par Manu355 dans le forum Débuter
    Réponses: 6
    Dernier message: 23/09/2010, 16h16
  2. [Dates] date du premier jour du mois
    Par amel95140 dans le forum Langage
    Réponses: 3
    Dernier message: 11/04/2007, 14h48
  3. Dernier Jours du mois en cours
    Par paradeofphp dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 29/06/2006, 19h55
  4. premier jour du mois
    Par ALLB dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 28/04/2006, 21h33
  5. Récuperer les jours du mois en cours
    Par mindwind dans le forum Oracle
    Réponses: 22
    Dernier message: 15/12/2005, 11h30

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