Forum Discussion
Error converting data type to date but not if converting data type to datetime first
- 2 years ago
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMrTQNzDVNzIwMlQwNLUCImNjpdhYAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [data = _t]), to_date = Table.TransformColumns(Source, {"data", each Date.From(DateTime.From(_, "de-DE"))}) in to_date
Thanks,
So the line for converting multiple columns to UK date format in one step would be something like:
= Table.TransformcolumnTypes(Source,{{"This Date", each Date.From(DateTime.From(_, "en-GB"))},{"That Date", each Date.From(DateTime.From(_, "en-GB"))}})
No. Don't use Table.TransformColumnTypes. Use this
= Table.TransformColumns(
Source,
{{"This Date", each Date.From(DateTime.From(_, "en-GB")), type date},
{"That Date", each Date.From(DateTime.From(_, "en-GB")), type date}}
)- k1s22 years agoHelper I
Thanks,
I'm having trouble applying it to all columns ending with the word 'Date".
I tried:
= Table.TransformColumns( #"prevstep", {List.Transform(List.Select(Table.ColumnNames#"prevstep"), eachText.EndsWith(_,"Date"))), each Date.From(DateTime.From(_, "en-GB")), type date} )...but got an "expression error 1 arguments were passed to a function which expects 2",
Where am I going wrong
- AlienSx2 years agoSuper User
Table.ColumnNames#"prevstep")no opening bracket. You are trying to wrap everything into one single step. Don't be afraid to write your calcs down step by step - more chances to catch a real reason of your error when you are new to M. This does not always slow down your code.
- k1s22 years agoHelper I
If I understand your suggestion, your point is taken that making it work it 2 steps is fine, but I suppose 1 step is more efficient.
Two simple steps for one column are straightforward for me like this:
#"Changed Type" = Table.TransformColumnTypes(prevstep,{{"Date & Time", type datetime}}), #"Changed Type1" = Table.TransformColumnTypes(#"Changed Type",{{"Date & Time", type date}}),Also,
Table.TransformColumnTypes(prevstep,List.Transform(List.Select(Table.ColumnNames#"prevstep"), eachText.EndsWith(_,"Date"))),Seems to work, but combing them I still can't get it working. This:
= Table.TransformColumns(#"prevstep", {List.Transform(List.Select(Table.ColumnNames,(#"prevstep"), each Text.EndsWith(_,"Date"))), each Date.From(DateTime.From(_, "en-GB")), type date})now gives me
Expression.Error: 3 arguments were passed to a function which expects 2.
Details:
Pattern=
Arguments=[List]