SQL MONTH(DATE())-1

chepel -  
Droopy_ Messages postés 252 Statut Membre -
Bonjour,
petite question pour les balèzes que vous êtes. je fais quelques requêtes sur 6 mois glissants en EXCEL via l'importation de données stockées sur une base access afin de produire des tableaux de bord. qu'obtient on au mois de janvier avec une requête contenant
MONTH(DATE())-1 and year(date()) - 1 ? vais avoir une erreur ou obtenir mes datas au mois de décembre 122008 ?
merci d'avance pour vos nombreuses réponses et bonnes fêtes à tous
Configuration: Windows XP
Internet Explorer 6.0

1 réponse

  1. Droopy_ Messages postés 252 Statut Membre 25
     
    au mois de janvier, MOIS(DATE()) = 1 donc MOIS(DATE()) - 1 = 0
    Si tu veux faire ça proprement, utilise la fonction DATE proprement :

    Si la case B2 contient : =DATE(2008;1;1)
    et la case B3 contient : =DATE(ANNEE(B2);MOIS(B2)-1;JOUR(B2))
    Alors B2 affichera : 01/01/08
    et B3 affichera 01/12/07

    Et si B4 contient =DATE(ANNEE(B2);MOIS(B2);JOUR(B2)-1)
    alors B4 affichera : 31/12/07

    NOTE: J'ai pas testé sur Excel, mais OpenOffice, mais ça doit être pareil.
    1
    1. chepel
       
      merci de ta réponse droopy mais cela ne fonctionne pas sous excel qui renvoie un erreur de référence circulaire. ceci dit je ne comprends pas comment B2 pourrait renvoyer l'année précédente par ta formule ! peux tu développer un peu que je cherche dans cette direction
      0
    2. chepel
       
      grosse précision . je fais une requete SQL via Excel sur une base Access en liaison de données du type
      SELECT * FROM mydatabase
      WHERE MMM=month(date())-1)
      si ca peut inspirer quelqu'un !
      merci encore
      0
      1. Droopy_ Messages postés 252 Statut Membre 25 > chepel
         
        Alors regarde dans les fonction de gestion de dates de Access. Sur MySQL, tu as les fonctions date_sub et date_add qui te permettent de faire ça.
        0