Azure Data Lake Analytics-输出日期为+;0000而不是-0800
我在Azure Data Lake Analytics表中有一个datetime列 我所有的输入数据都是UTC+0000。使用以下代码时,所有csv输出将日期转换为-0800Azure Data Lake Analytics-输出日期为+;0000而不是-0800,azure,azure-data-lake,Azure,Azure Data Lake,我在Azure Data Lake Analytics表中有一个datetime列 我所有的输入数据都是UTC+0000。使用以下代码时,所有csv输出将日期转换为-0800 OUTPUT @data TO @"/data.csv" USING Outputters.Text(quoting : false, delimiter : '|'); 输出中的datatime示例: 2018-01-15T12:20:13.0000000-08:00 是否有控制日期输出格式的选项?我真的不明白为什么当
OUTPUT @data
TO @"/data.csv"
USING Outputters.Text(quoting : false, delimiter : '|');
输出中的datatime示例:
2018-01-15T12:20:13.0000000-08:00
是否有控制日期输出格式的选项?我真的不明白为什么当传入的数据不在时,所有的东西都突然在-0800中。目前,ADLA没有在DateTime中存储时区信息,这意味着在读取时它将始终默认为集群机器的本地时间(-8:00)。因此,您可以通过运行
DateTime.SpecifyKind(myDate, DateTimeKind.Local)
或使用
DateTime.ConvertToUtc()
以Utc格式输出(但请注意,下次接收相同的数据时,ADLA仍默认以偏移量-0800读取数据)。举例如下:
@getDates =
EXTRACT
id int,
date DateTime
FROM "/test/DateTestUtc.csv"
USING Extractors.Csv();
@formatDates =
SELECT
id,
DateTime.SpecifyKind(date, DateTimeKind.Local) AS localDate,
date.ConvertToUtc() AS utcDate
FROM @getDates;
OUTPUT @formatDates
TO "/test/dateTestUtcKind_AllUTC.csv"
USING Outputters.Csv();
您可以在我们的计算机上提交带有偏移量的DateTime功能请求。如果您还有其他问题,请告诉我