无法在U-sql中进行数据类型的转换

时间:2019-05-17 14:38:17

标签: u-sql

使用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

1 个答案:

答案 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;