USQL读取文件名模式没有日期部分的最后n天

时间:2017-09-19 10:00:47

标签: u-sql azure-analysis-services

在数据湖中,我的文件名为yyyyMM_data.csv。现在我想阅读前3天的数据。我正在使用下面的代码 -

DECLARE @ReportDate DateTime= DateTime.Parse("05/08/2017");
DECLARE @FeatureSummaryInput string=@"/FolderPath/{InputFileDate:yyyy}{InputFileDate:MM}_data.csv";

@FeaturedUsed =
    EXTRACT Id string,InputFileDate DateTime
    FROM @FeatureSummaryInput
    USING Extractors.Csv(silent : true, skipFirstNRows : 1);

@FeaturedUsed=
    SELECT *
           FROM @FeaturedUsed
    WHERE InputFileDate BETWEEN @ReportDate.AddDays(-3) AND @ReportDate;

如果我运行上面的代码,它运行空输入。如果我错过了什么,请告诉我。为什么它没有读取正确的文件?

似乎我们必须拥有" day"在文件名模式中工作。

1 个答案:

答案 0 :(得分:0)

可能我错过了一些东西但是,当你将InputFileDate强制转换为DateTime时,它默认为当月的第一天,因为没有指定日期。对于设置为ReportDate的测试05/08/2017,您的WHERE子句基本上会计算为Between 2017-08-02 And 2017-08-05,这将永远不会成立。

您希望将文件结构化为yyyyMM的日期元素在哪里?