从一天中提取文件- U SQL
Extract files from single day- 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);
有人可以帮我解决这个问题吗?
您可以使用 DateTime
对象的 Date
属性 来比较日期而不包括时间部分,如下所示:
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 提取器。当只有一列或者这可能是错字时可能无关紧要?
我遇到了 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);
有人可以帮我解决这个问题吗?
您可以使用 DateTime
对象的 Date
属性 来比较日期而不包括时间部分,如下所示:
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 提取器。当只有一列或者这可能是错字时可能无关紧要?