Impossible de convertir DateTime.LocalNow

Accueil – Le CFO masqué Forums Power Query Impossible de convertir DateTime.LocalNow

  • Ce sujet contient 2 réponses, 2 participants et a été mis à jour pour la dernière fois par e.chevron, le il y a 3 années et 1 mois.
3 sujets de 1 à 3 (sur un total de 3)
  • Auteur
    Articles
  • #94152
    e.chevron
    Participant

    Bonjour.

    Comme indiqué dans le sujet, je n’arrive pas à convertir DateTime.LocalNow (ni DateTime.FixedLocalNow)

    Soit une fonction simpliste :

    let Aujourdhui = 
        let
            Today = Date.From(DateTime.LocalNow)
        in
            Today
    in
        Aujourdhui

    J’obtiens :
    DataFormat.Error : Désolé… Nous ne pouvons pas procéder à la conversion en Date.

    Avec Today = Text.From(DateTime.LocalNow)
    j’obtiens Expression.Error : Désolé… Nous n’avons pas pu convertir une valeur de type Function en type Text.

    Avec Today = DateTime.Date(DateTime.LocalNow)
    j’obtiens Expression.Error : La fonction DateTime.Date attend une entre de type DateTime ou DateTimeZone.

    Ca aurait été tellement simple d’avoir un Date.LocalNow (n’osons pas envisager un Date.Today, ce serait trop gourmand), mais non, il faut convertir… Mais apparemment c’est plus compliqué que ce que je pensais…

    Merci d’avance pour vos lumières, car ça fait des heures que je cherche juste comment créer une variable contenant la date du jour.
    Je passais ici par une fonction car la variable dans le code global provoquait les mêmes erreurs et que j’ai donc voulu l’isoler.

    Dans l’attente impatiente de vos réponses, je vous souhaite une excellente journée.

    #94156
    Daniel
    Participant

    Bonjour,
    Essayez la formule M suivante :
    Date.From(DateTime.LocalNow())
    Voir un exemple en pièce jointe.

    let
        #"Insertion de la date du jour"=Date.From(DateTime.LocalNow()),
        Source = Excel.CurrentWorkbook(){[Name="tabData"]}[Content],
        #"Type modifié" = Table.TransformColumnTypes(Source,{{"Date", type date}}),
        #"Lignes filtrées" = Table.SelectRows(#"Type modifié", each [Date] = #"Insertion de la date du jour")
    in
        #"Lignes filtrées"
    

    Cordialement

    • Cette réponse a été modifiée le il y a 3 années et 1 mois par Daniel. Raison: Ajout code de la requête exemple
    Attachments:
    You must be logged in to view attached files.
    #94165
    e.chevron
    Participant

    Punaise !!!!!!
    La double parenthèse !!!!

    Bonjour Daniel, et merci pour cette correction.

    Pour celles et ceux qui rencontreraient le même problème et qui n’auraient pas compris la correction :
    DateTime.LocalNow représente la fonction en tant que telle
    DateTime.LocalNow() représente le résultat de ladite fonction

    DateTime.Date(DateTime.LocalNow) ne fonctionne pas car DateTime.Date ne sait pas traiter la fonction, il ne peut traiter que le résultat de la fonction, donc :
    DateTime.Date(DateTime.LocalNow())

    Il en sera évidemment de même pour toute autre fonction : lorsqu’on veut traiter le résultat d’une fonction, il faut obligatoirement l’affubler de ses parenthèses, qu’il y ait ou non quelque-chose à l’intérieur.

    Encore merci Daniel pour m’avoir mis sur la piste.

3 sujets de 1 à 3 (sur un total de 3)
  • Vous devez être connecté pour répondre à ce sujet.