使用U-sql进行某些转换时遇到问题,其中一个问题是更改日期格式,仅当我跳过第一行(1)时,我才能转换日期格式。但是我确实需要列名,所以我不能跳过第一行。另外,我还需要进行其他一些转换,例如数据类型转换和简单的串联。下面是我的示例代码。请帮助。
DECLARE @dir string = "/storefolder/Sourcefile/dwfile3.csv";
DECLARE @file_set_path string = "/BCBSvermot/Sample_output.csv";
@data =
EXTRACT
CHECK_DATE string,
FROM @dir
USING Extractors.Csv(skipFirstNRows:1);
@result = SELECT
Convert.ToDateTime(CHECK_DATE).ToString("dd-MM-yyyy") AS CHECK_DATE
FROM @data;
OUTPUT @result
TO @file_set_path
USING Outputters.Csv();
谢谢, Rav
答案 0 :(得分:1)
您可以声明与此类似的函数:
DECLARE @func Func<string,string> =
(s) =>{
DateTime i;
var x = DateTime.TryParse(s, out i);
return x?((DateTime)i).ToString("dd-MM-yyyy",CultureInfo.CurrentCulture) : s;
};
然后您可以在查询中使用它
@result =
SELECT @func(CHECK_DATE) AS CHECK_DATE
FROM @data;