Power BI - SQL到DAX?

时间:2017-02-03 17:15:23

标签: powerbi dax

我有一个rdat字段,我必须转换为日期字段,我知道如何在sql中做,但我是DAX的新手,我不知道该怎么做

CONVERT(CHAR(10), DATEADD(d, RDAT_ENTERED +5843, 0), 1)

在Power BI中。我可以在sql端修复它只是引入数据但我仍然想知道它在BI中的外观。

2 个答案:

答案 0 :(得分:2)

您的数据似乎使用 SQL SERVER EPOCH来表示日期,因此RDAT_ENTERED + 5843表示距1/1/1900确定的天数。您可以使用该信息通过DAX或Power Query将其转换为人工日期。

在Dax或Power Query中创建计算列(非正式地称为“M”)

Power BI和Power Pivot中的DAX

HumanDate = DATE(1900,1,1) + [RDAT_ENTERED] + 5843

Power Query中的M语言

=Date.AddDays(DateTime.FromText("1900-01-01"), [RDAT_ENTERED] + 5843)

如果有帮助,请告诉我。

答案 1 :(得分:0)

我意识到你问题的背景,并认识到@alehandro的excellent回答。但是,一些建议的最佳实践:

  • SQL BI工具
  • 对标准数据类型的转换应尽可能低
  • 不应使用幻数DECLARE @EPOCH_RDAT DATE = { d '1916-01-01' };
  • 功能参数应按预期使用:SELECT DATEADD(DAY, RDAT_ENTERED, @EPOCH_RDAT);