Sql server 如何使用DAX函数转换日期?

Sql server 如何使用DAX函数转换日期?,sql-server,excel,ssas,powerpivot,dax,Sql Server,Excel,Ssas,Powerpivot,Dax,我正在做一个PowerPivot项目,我需要将日期转换为另一种格式。 我的SQL Server分析多维数据集为我提供了一个包含日期属性的时间维度。 我想将其转换为dd/mm/yyyy格式,以创建对另一个数据源(Excel文件)的引用 我试图使用标准的DAX日期函数来转换它,但它没有被识别为日期,这似乎是由于作为前缀添加了日期的名称。 如何将其转换为dd/mm/yyyy格式?如何提取逗号后的子字符串 谢谢 我使用以下数据来测试我的解决方案 可以使用搜索函数查找字符串的第一个实例。因此,我可以用

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

我试图使用标准的DAX日期函数来转换它,但它没有被识别为日期,这似乎是由于作为前缀添加了日期的名称。 如何将其转换为dd/mm/yyyy格式?如何提取逗号后的子字符串


谢谢

我使用以下数据来测试我的解决方案

可以使用搜索函数查找字符串的第一个实例。因此,我可以用以下公式解析日期部分:

=right([Datefield],(LEN([Datefield])-SEARCH(",",[Datefield])-1))
它获取从逗号后的字符开始到字符串结尾的子字符串

DATEVALUE函数接受表示日期的字符串并将其转换为日期。我可以将其与以前的功能结合起来:

=datevalue(right([Datefield],(LEN([Datefield])-SEARCH(",",[Datefield])-1)))
在下图中,第一列是原始数据。第二列是解析日期子字符串的函数。第三列获取第二列中该日期字符串的日期值。第四列是包含子字符串和datevalue的一体式公式


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

=datevalue(右([Datefield];(LEN([Datefield])-SEARCH(“,”;[Datefield])-1)))


如果您将定期从数据库加载数据,那么我建议您使用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"