【发布时间】: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
假设我们有包含 EffectiveDate DateTime 字段的文档。如何查询 CosmosDb 以返回今天与 EffectiveDate 之间的差值大于 30 的记录?
这似乎不起作用:
select c from c where ("2020-01-28T00:00:00-06:00" - c.effectiveDate) > 30
【问题讨论】:
标签: azure azure-cosmosdb
请尝试参考官方文档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
我的样本结果如下图。
【讨论】: