Azure Data Lake Analytics - 输出日期为+0000而不是-0800

时间:2018-01-17 09:59:44

标签: azure azure-data-lake

我在Azure Data Lake Analytics表中有一个datetime列。

我的所有传入数据都是UTC +0000。使用以下代码时,所有csv输出都将日期转换为-0800

OUTPUT @data
TO @"/data.csv"
USING Outputters.Text(quoting : false, delimiter : '|');

输出中的示例数据时间:

  

2018-01-15T12:20:13.0000000-08:00

是否有控制日期输出格式的选项?我不太明白为什么一切都突然出现在-0800,当传入的数据不是。

1 个答案:

答案 0 :(得分:1)

目前,ADLA不会在DateTime中存储TimeZone信息,这意味着它在读取时始终默认为群集机器的本地时间(在您的情况下为-8:00)。因此,您可以通过运行

将DateTime规范化为当地时间
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();

您可以在我们的ADL feedback site上为偏移量提交功能请求。如果您有其他问题,请告诉我们!