在数据湖中,我的文件名为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"在文件名模式中工作。
答案 0 :(得分:0)
可能我错过了一些东西但是,当你将InputFileDate
强制转换为DateTime
时,它默认为当月的第一天,因为没有指定日期。对于设置为ReportDate
的测试05/08/2017
,您的WHERE
子句基本上会计算为Between 2017-08-02 And 2017-08-05
,这将永远不会成立。
您希望将文件结构化为yyyyMM
的日期元素在哪里?