Forum Discussion
[M language] Transform column type to datetime with 2 string formats?
- 8 years ago
You shouldn't replace the "_" at all.
My intenton was to have you just follow the indicated steps and only adjust the generated code by adding the if .. then .. else part,
But if you want to copy and adjust the code, then change the previous step name and the column reference.
According to your example code, this would be:
#"Convert Date" = Table.TransformColumns(#"Expanded Document",{{"Document.timestamp", each Date.From(DateTimeZone.From(_, if Text.Contains(_,"M") then "en-US" else "nl-NL")), type date}})
Thanks a lot for your help, it's working now.
But what does the '_' mean in the formula?
I think it's the solution I was looking for. If I compare the code you send me and the code I made first, there are similar.
The "_" refers to each value in column "Document.timestamp".
It is part of the syntax related to keyword each (which is actually a function).
Typically, each _ refers to the corresponding values, depending on the function in which it is used.
In Table.TransformColumns it refers to the values in the column with the name in the preceding parameter.
Other examples:
In Table.AddColumn, each _ refers to each record.
If you want to refer to another column, you need to add the column, e.g. _[Col1].
And in this particular case you can also omit the _ and only use the column reference [Col] as a shortcut.
In List.Transform, each _ refers to each list item, e.g.:
List.Transform({1..10}, each _ * 10)
- loic_bouscaud8 years agoRegular Visitor
Thanks for the explanation.
Also, I have a problem with the formula you gave me.
When I use it with Date.From(DateTimeZone.From()) there are no problem, but I want to keep the time so I replaced Date.From by DateTime.From.In the Query Editor I got the result I want but when I apply the changes to Power BI Desktop, an error message appear but there are no details in the generated table errors and I lost all the data in my Desktop model.
Is there a way to keep the datetime or must I create two custom columns and then concatenate them?
- MarcelBeug8 years agoCommunity Champion
At the end of my formula, there is type date. Change that to type datetime and you should be fine.
- loic_bouscaud8 years agoRegular Visitor
I totally miss it!
Thanks again for all your help.
Regards.