Cosmos db sql api 查询,在 WHERE 条件中使用日期时间筛选器



试图获取那些修改日期(日期时间(等于(当前日期-7(但不起作用的文档,伪代码如下

"SELECT * FROM c 其中 c.LastModifiedDate = (GetCurrentDate-7(">

如何使用cosmosdb sql api来做到这一点? 没有udf,因为我们有基于计时器触发器的Azure函数,当每次触发时,它直接使用上面的SQL查询查询Cosmos DB,并将结果绑定到函数的参数。

[FunctionName("TimerCosmosDbWriteExample")]
public static async Task Run([TimerTrigger("0 */5 * * * *")]TimerInfo myTimer,
TraceWriter log,
[CosmosDB(
databaseName: "Database",
collectionName: "Collection",
ConnectionStringSetting = "MyConnectionString",
SqlQuery = "SELECT * FROM c where c.LastModifiedDate = GetCurrentDate-7")] IEnumerable<Entity> documents)
{
//function body -- loop through retrieved documents & process it 
}

我有2个观点供您参考:

1.由于在 azure 函数中调用 sql 查询,因此可以使用代码计算currentDate-7,然后将其作为参数传递到查询 sql 中。这是一种常见的用法,只是匹配LastModifiedDate列的格式。

2.我不知道你为什么说你不能在azure函数中使用udf和sql查询,这没有意义。据我所知,UDF是SQL的一部分。请参考我之前的情况:从 cosmos db 查询特定的时间范围数据,并通过 azure 数据工厂将其存储在 sql 数据库中

最新更新