【问题标题】:Calculate Difference between two datetime values in CosmosDb计算 CosmosDb 中两个日期时间值之间的差异
【发布时间】:2020-01-28 19:50:18
【问题描述】:

假设我们有包含 EffectiveDate DateTime 字段的文档。如何查询 CosmosDb 以返回今天与 EffectiveDate 之间的差值大于 30 的记录?

这似乎不起作用:

select c from c where ("2020-01-28T00:00:00-06:00" - c.effectiveDate) > 30

【问题讨论】:

    标签: azure azure-cosmosdb


    【解决方案1】:

    请尝试参考官方文档User-defined functions (UDFs) in Azure Cosmos DB了解Azure CosmosDB的功能UDF,您可以使用它来实现您的需求。

    如下图,在 Azure 门户的 Azure CosmosDB 的数据资源管理器中,按照步骤使用 JavaScript 创建一个名为 utctime 的 UDF。

    function userDefinedFunction(dateStr){
        return new Date(dateStr).getTime() / 1000;
    }
    

    然后,您可以按照自己的意愿进行 SQL 查询。

    SELECT * FROM c WHERE (udf.utctime('2020-01-28T00:10:00-06:00') - udf.utctime(c.effectiveDate)) > 30
    

    我的样本结果如下图。

    【讨论】:

    • 除以 1000 表示什么?
    • @obautista 仅用于将毫秒转换为秒。
    猜你喜欢
    • 2021-11-25
    • 2011-08-01
    • 2012-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-09
    相关资源
    最近更新 更多