将 UTC 时间戳转换为 U-SQL 中的日期和时间
Convert UTC Time Stamp to Date and Time in U-SQL
我对 U-SQL 还很陌生,所以这可能是一个简单的问题。
我在 ADL table 中有一个字段 [utc_timestamp],其 unix 时间戳格式为“1497178877”,它测量从 1970 年 1 月 1 日开始的秒数。
有什么简单的方法可以将 U-SQL 中的这个时间戳同时转换为“2017-06-11”形式的日期和日期时间对象吗?
我最初的尝试似乎不太奏效。
U-SQL是用C#作为表达语言,所以你可以用C#/.NET来做。
这里是 link 回答如何在 C# 中做到这一点:How can I convert a Unix timestamp to DateTime and vice versa?
由于我们目前使用的是 .NET Runtime 4.5.2,您将无法使用 4.6 built-in 方法(我们计划升级到更新版本的运行时,但我没有预计到达时间)。
如果您想避免将内联转换编写为 C# 表达式,您可以使用 U-SQL Func 变量通过 VS 的代码部署它,或者创建并注册一个包含 UDF 的程序集。
@table =
SELECT * FROM
( VALUES
(1497178877)
) AS T(seconds);
DECLARE @dateStart = new DateTime(1970, 01, 01);
@result =
SELECT @dateStart.AddSeconds(seconds).ToString("yyyy-MM-dd") AS newDateString,
@dateStart.AddSeconds(seconds) AS newDate
FROM @table;
OUTPUT @result
TO "/Temp/Dates/Example1.txt"
USING Outputters.Tsv();
我对 U-SQL 还很陌生,所以这可能是一个简单的问题。
我在 ADL table 中有一个字段 [utc_timestamp],其 unix 时间戳格式为“1497178877”,它测量从 1970 年 1 月 1 日开始的秒数。
有什么简单的方法可以将 U-SQL 中的这个时间戳同时转换为“2017-06-11”形式的日期和日期时间对象吗?
我最初的尝试似乎不太奏效。
U-SQL是用C#作为表达语言,所以你可以用C#/.NET来做。
这里是 link 回答如何在 C# 中做到这一点:How can I convert a Unix timestamp to DateTime and vice versa?
由于我们目前使用的是 .NET Runtime 4.5.2,您将无法使用 4.6 built-in 方法(我们计划升级到更新版本的运行时,但我没有预计到达时间)。
如果您想避免将内联转换编写为 C# 表达式,您可以使用 U-SQL Func 变量通过 VS 的代码部署它,或者创建并注册一个包含 UDF 的程序集。
@table =
SELECT * FROM
( VALUES
(1497178877)
) AS T(seconds);
DECLARE @dateStart = new DateTime(1970, 01, 01);
@result =
SELECT @dateStart.AddSeconds(seconds).ToString("yyyy-MM-dd") AS newDateString,
@dateStart.AddSeconds(seconds) AS newDate
FROM @table;
OUTPUT @result
TO "/Temp/Dates/Example1.txt"
USING Outputters.Tsv();