Azure 数据工厂数据流时区转换问题

Azure Data Factory data flow timezone conversion problem

我试图在数据流中将时区从 CST 转换为 UTC。快速 google 告诉我 CST 是 UTC-6:00,所以它应该增加 6 小时。

以下派生列函数由于某种原因只添加了 5 小时:

toUTC(localDatetime, 'CST')

此外,CurrentUTC('CST') 给了我正确的 6 小时时差,所以我不得不像这样重写这个函数:

LocalDatetime + hours(toInteger((currentUTC('CST') - currentUTC()) / 1000 / 60 / 60)) 
// Minus between timestamps gives difference in milliseconds

这是有意为之的行为吗?我担心当时区“转移”时,这段代码会中断,所以使用 toUTC 将是最好的解决方案,但由于某种原因,它现在给出了不正确的结果

toUTC() 根据 Daylight-Saving 时间有效性将日期时间转换为 UTC 时区。

当您从 CST 转换为 UCT 时,如果您的日期在夏令时生效时,则它会为您的日期增加 +5,否则会为您的日期增加 +6。

示例:

派生列表达式:toUTC(toTimestamp(Date_UTC), 'CST')