从单日-U SQL中提取文件

时间:2018-06-04 13:29:47

标签: azure u-sql

我遇到了U SQL脚本的问题。我试图从目录中获取当天创建的文件。文件名的日期格式为 yyyyMMdd 。但是,当我尝试提取数据而不是只采用一天文件时,我得到目录中的所有文件。我使用下面的脚本。

DECLARE @file_set_path string ="/XXXX/Sample_{date:yyyy}{date:MM}{date:dd}{*}.csv";

@searchlog =
EXTRACT PART_NUMBER string, date DateTime FROM @file_set_path USING Extractors.Tsv(skipFirstNRows:1);

有人可以帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

您可以使用Date对象的DateTime属性来比较日期,而不包括时间组件,如下所示:

DECLARE @file_set_path string ="/Sample_{date:yyyy}{date:MM}{date:dd}{*}.csv";
DECLARE @now DateTime = DateTime.Now;


@searchlog =
    EXTRACT PART_NUMBER string,
            date DateTime
    FROM @file_set_path
    USING Extractors.Csv(skipFirstNRows : 1);


@output =
    SELECT *,
           @now AS now,
           date.Date AS x,
           @now.Date AS y

    FROM @searchlog
    WHERE date.Date == @now.Date;


OUTPUT @output
TO "/output/output.csv"
USING Outputters.Csv();

注意,我注意到你正在使用带有Csv文件的Tsv提取器。只有一列或者这可能是拼写错误可能无关紧要?