在Azure Functions绑定中,有没有办法根据相对于今天的日期查询Cosmos DB中的文档?

问题描述 投票:1回答:1

我有一个带有Cosmos DB绑定的Azure功能。我想要做的是将来所有文件都带有日期。

像这样的东西会起作用......

SqlQuery = "SELECT * FROM c WHERE c.Filter = {FilterTerm} AND c.SomeDate < '" + DateTime.UtcNow + "'")]

除了绑定存在于属性中这一事实意味着它们必须是一个常量表达式。

据我所知,Cosmos DB中没有内置任何功能(例如,GetDate() in T-SQL)。

所以目前我正在查询该批次并在内存中进行日期过滤。这有效,但它意味着比我想要的更多数据库流量。

有没有办法更有效地做到这一点?

azure-functions azure-cosmosdb
1个回答
1
投票

虽然没有像Cosmos DB cosmos db中内置的任何函数,如GetDate(),但您可以使用UDF来实现类似的功能。

执行:

function convertTime(unix_timestamp){

      var date = new Date();
      return date;
    //   var year = date.getFullYear();
    //   var month = ("0"+(date.getMonth()+1)).substr(-2);
    //   var day = ("0"+date.getDate()).substr(-2);
    //   var hour = ("0"+date.getHours()).substr(-2);
    //   var minutes = ("0"+date.getMinutes()).substr(-2);
    //   var seconds = ("0"+date.getSeconds()).substr(-2);

    //   return year+"-"+month+"-"+day+" "+hour+":"+minutes+":"+seconds;
}

您可以转换任何您想要匹配您的字段的格式。

SQL:

SELECT c.SomeDate < udf.nowDate() FROM c

如有任何疑虑,请随时告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.