将数据工厂中的纪元时间转换为日期时间

时间:2018-10-04 13:21:18

标签: sql azure azure-cosmosdb azure-data-factory epoch

我有以下查询。此查询将数据从Cosmos DB复制到Azure Data Lake

select c.Tag
from c
where 
c.data.timestamp >= '@{formatDateTime(addminutes(pipeline().TriggerTime, -15), 'yyyy-MM-ddTHH:mm:ssZ' )}' 

但是,我必须使用_ts,这是在cosmos DB集合而不是c.data.timestamp上创建文档的时期。如何将纪元时间转换为日期时间并与'@{formatDateTime(addminutes(pipeline().TriggerTime, -15), 'yyyy-MM-ddTHH:mm:ssZ' )}'

进行比较

我也尝试过使用     dateadd( SECOND, c._ts, '1970-1-1' ),显然不支持。

1 个答案:

答案 0 :(得分:1)

MAK,如@Chris所说,您可以在宇宙数据库查询中使用UDF

udf:

function convertTime(unix_timestamp){
      var date = new Date(unix_timestamp * 1000);
      return date;
}

sql:

enter image description here

您可以将其合并到您的传输sql中:

select c.Tag
from c
where 
udf.convertTime(c._ts) >= '@{formatDateTime(addminutes(pipeline().TriggerTime, -15), 'yyyy-MM-ddTHH:mm:ssZ' )}'

希望它对您有帮助。