如何使用DAX函数转换date?

我正在开发PowerPivot项目,我需要将date转换为另一种格式。 我的SQL Server分析多维数据集为我提供了一个包含date属性的时间维度。 我想将其转换为dd / mm / yyyy格式来创build对另一个数据源(Excel文件)的引用。

在这里输入图像说明

我试图通过使用标准的DAXdate函数来转换它,但它不被识别为date,它似乎是由于作为前缀添加的一天的名称。 如何将其转换为dd / mm / yyyy格式? 如何提取逗号后的子string?

谢谢 !

我用下面的数据来testing我的解决scheme。

在这里输入图像说明

您可以使用SEARCHfunction查找string的第一个实例。 所以我可以用下面的公式parsingdate部分:

=right([Datefield],(LEN([Datefield])-SEARCH(",",[Datefield])-1)) 

它从string后面的逗号开始的字符处获取子string。

DATEVALUE函数接受一个表示date的string并将其转换为date。 我可以结合我以前的function:

 =datevalue(right([Datefield],(LEN([Datefield])-SEARCH(",",[Datefield])-1))) 

在下图中,第一列是原始数据。 第二列是parsingdate的子string的函数。 第三列取第二列中该datestring的date值。 第四列是与子string和date值都在一个公式。

在这里输入图像说明

如果您将定期从数据库加载数据,则比我build议使用Power Query将数据加载到PowerPivot模块中。

这里是可以为你做结果的示例代码。

数据看起来像这样(表2):

 Date Monday, January 12, 2014 Tuesday, January 13, 2014 Wednesday, January 14, 2014 
 let Source = Excel.CurrentWorkbook(){[Name="Table2"]}[Content], #"Split Column by Delimiter" = Table.SplitColumn(Source,"Date",Splitter.SplitTextByEachDelimiter({","}, null, false),{"Date.1", "Date.2"}), #"Change to Date Format" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Date.1", type text}, {"Date.2", type date}}), #"Removed Columns" = Table.RemoveColumns(#"Change to Date Format",{"Date.1"}) in #"Removed Columns" 

正如@mmarie所解释的,以下的公式运作良好(需要一些改变):

= DATEVALUE(右([的DateField];(LEN([的DateField]) – SEARCH( “”;的DateField]) – 1)))