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 :

Comment obtenir une fin de mois avec un numéro de mois?


Sujet :

Développement SQL Server

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2011
    Messages : 38
    Points : 32
    Points
    32
    Par défaut Comment obtenir une fin de mois avec un numéro de mois?
    Bonjour,

    J'imagine que ce n'est pas très difficile mais impossible d'avoir une fin de mois à l'aide d'un numéro de mois.

    Par exemple, j'ai 2015-10 et j'aimerais obtenir 2015-10-31.

    J'ai essayé avec toutes les fonctions de dates adaptés mais impossible d'aboutir. Une idée?

    Merci d'avance!

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 801
    Points
    30 801
    Par défaut
    Un moyen simple, ce serait de convertir l'identifiant de mois (2015-10) en date de début de mois (2015-10-01), y ajouter 1 mois (2015-11-01) et en retirer un jour (2015-10-31).
    Pour chacune de ces opérations il existe une fonction...
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

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

    Informations forums :
    Inscription : Août 2009
    Messages : 73
    Points : 160
    Points
    160
    Par défaut
    Citation Envoyé par jslpfasc2 Voir le message
    ....
    Par exemple, j'ai 2015-10 et j'aimerais obtenir 2015-10-31.

    J'ai essayé avec toutes les fonctions de dates adaptés mais impossible d'aboutir. Une idée?

    ....
    C'est tout à fait possible d'obtenir le dernier jour du mois à partir du format que tu donnes ici. Mais cela va dépendre de ton sgbd.
    Par exemple, sous oracle ça te donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT last_day(to_date('2015-10','YYYY-MM')) FROM dual;

  4. #4
    Membre expérimenté

    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2014
    Messages
    815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 815
    Points : 1 350
    Points
    1 350
    Billets dans le blog
    2
    Par défaut
    proposition non optimiser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select cast(DATEADD(day,-1,dateadd(monTH,datediff(month,0, CAST(cast(('2015-10' + '-01') as date)as datetime))+1,0))as date)
    A partir de SQL 2012 tu peux profiter la function EOMONTH

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
     
    select eomonth(CAST(cast(('2015-10' + '-01') as date)as datetime))

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2011
    Messages : 38
    Points : 32
    Points
    32
    Par défaut
    Super!

    Merci pour vos réponses! Je suis sous SQL Server donc EOMONTH marche très bien!

    Je classe le sujet dans 'RESOLU' grâce à vous!

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/12/2013, 10h20
  2. Comment obtenir une intersection de deux tables avec flamerobine
    Par thierry maesen dans le forum Débuter
    Réponses: 4
    Dernier message: 09/05/2013, 08h02
  3. Comment obtenir une chaine avec Date/heure ?
    Par Flow_75 dans le forum VBA Word
    Réponses: 4
    Dernier message: 05/05/2008, 16h18
  4. Réponses: 3
    Dernier message: 10/11/2007, 18h09
  5. Réponses: 17
    Dernier message: 04/04/2005, 17h50

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