我有一个带有Cosmos DB绑定的Azure功能。我想要做的是将来所有文件都带有日期。
像这样的东西会起作用......
SqlQuery = "SELECT * FROM c WHERE c.Filter = {FilterTerm} AND c.SomeDate < '" + DateTime.UtcNow + "'")]
除了绑定存在于属性中这一事实意味着它们必须是一个常量表达式。
据我所知,Cosmos DB中没有内置任何功能(例如,GetDate()
in T-SQL)。
所以目前我正在查询该批次并在内存中进行日期过滤。这有效,但它意味着比我想要的更多数据库流量。
有没有办法更有效地做到这一点?
虽然没有像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
如有任何疑虑,请随时告诉我。