我有一个带有Cosmos DB绑定的Azure函数。我想做的是让所有带有将来日期的文档。
类似的事情会起作用...
SqlQuery = "SELECT * FROM c WHERE c.Filter = {FilterTerm} AND c.SomeDate < '" + DateTime.UtcNow + "'")]
除了绑定存在于属性中这一事实意味着绑定必须是一个常量表达式。
据我所知,Cosmos DB中没有内置任何功能(例如GetDate()
in T-SQL)。
因此,当前我正在查询批次并在内存中进行日期过滤。这行得通,但是它意味着比我想要的更多的数据库流量。
有什么办法可以更有效地做到这一点?
答案 0 :(得分:1)
尽管Cosmos DB cosmos db中没有内置诸如GetDate()之类的功能,但是您可以使用UDF来实现类似的功能。
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
任何担心,请随时让我知道。