The ultimate Fabric, Power BI, SQL, and AI community-led learning event. Save €200 with code FABCOMM.
Get registeredEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
Hello,
Can some one explain this ;
= Table.TransformColumns( Source,
{ "Date", each Date.From(_) }
which does what it say "date" now = a date ;
but if I dispense with the full syntax
= Table.TransformColumns( Source,
{ "Date", Date.From } )
I now also transforms the date type ? which is useful, just wondered why ?
Richard.
Solved! Go to Solution.
Hi @Dicken
I think it's the behavior of Table.TransformColumns. If you see
Table.TransformColumns - Table Function | Power Query M
this function decides how to apply the transformation function to each value or whether to update the column type metadata.
In { "Date", each Date.From(_) }, Table.TransformColumns only sees a custom lambda, “(x) => Date.From(x)”. It doesn’t know the return type of this lambda, so it leaves the column type metadata unchanged.
While in { "Date", Date.From }, Table.TransformColumns sees a native function that has a declared return type in the M library (type date). Since it knows that return type, it sets the column’s metadata to date as well.
Ran a simple test below,
let
Query1 =
let
Source = #table(type table [Date = text], {{"2025-08-22"}}),
Transform1 = Table.TransformColumns(Source, {"Date", each Date.From(_)}),
Transform2 = Table.TransformColumns(Source, {"Date", Date.From})
in
{ Transform1, Transform2 }
in
Query1
Hi @Dicken
I think it's the behavior of Table.TransformColumns. If you see
Table.TransformColumns - Table Function | Power Query M
this function decides how to apply the transformation function to each value or whether to update the column type metadata.
In { "Date", each Date.From(_) }, Table.TransformColumns only sees a custom lambda, “(x) => Date.From(x)”. It doesn’t know the return type of this lambda, so it leaves the column type metadata unchanged.
While in { "Date", Date.From }, Table.TransformColumns sees a native function that has a declared return type in the M library (type date). Since it knows that return type, it sets the column’s metadata to date as well.
Ran a simple test below,
let
Query1 =
let
Source = #table(type table [Date = text], {{"2025-08-22"}}),
Transform1 = Table.TransformColumns(Source, {"Date", each Date.From(_)}),
Transform2 = Table.TransformColumns(Source, {"Date", Date.From})
in
{ Transform1, Transform2 }
in
Query1
Thanks ,
RD
(_) as date => Date.From(_)