Чтение USQL за последние n дней, когда шаблон имени файла не имеет дневной части

В озере данных у меня есть имена файлов с шаблоном 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;

Если я запускаю код выше, он работает с пустым вводом. Пожалуйста, дайте мне знать, если я что-то упустил. Почему он не читает правильный файл?

Похоже, нам нужно иметь «день» в шаблоне имени файла, чтобы это работало.


person Mahesh Dounde    schedule 19.09.2017    source источник


Ответы (1)


Возможно, я что-то упускаю, но когда вы приводите InputFileDate к DateTime, по умолчанию используется первое число месяца, так как день не указан. Для вашего теста ReportDate, установленного на 05/08/2017, ваше предложение WHERE в основном оценивается как Between 2017-08-02 And 2017-08-05, что никогда не будет истинным.

Где вы ожидаете, что элемент дня появится в ваших файлах, структурированных как yyyyMM?

person wBob    schedule 19.09.2017