Azure cosmosdb Azure Cosmos DB:在';12月27日;通过存储过程执行查询时出错

Azure cosmosdb Azure Cosmos DB:在';12月27日;通过存储过程执行查询时出错,azure-cosmosdb,Azure Cosmosdb,在针对Azure Cosmos DB非分区集合运行的存储过程中,我在下面运行选择查询: var twentyMinutesBefore = new Date(); twentyMinutesBefore.setMinutes(twentyMinutesBefore.getMinutes() - 20); var filterQuery = "SELECT TOP 40 * FROM c WHERE (c.transmissionState = 2 AND (" + twentyMinutesBe

在针对Azure Cosmos DB非分区集合运行的存储过程中,我在下面运行选择查询:

var twentyMinutesBefore = new Date();
twentyMinutesBefore.setMinutes(twentyMinutesBefore.getMinutes() - 20);
var filterQuery = "SELECT TOP 40 * FROM c WHERE (c.transmissionState = 2 AND (" + twentyMinutesBefore + " > c.dateCreated.epoch)) OR c.transmissionState = 0 ORDER BY c.dateCreated.epoch DESC";
我执行以下查询:

var isAccepted = collection.queryDocuments(collectionLink, filterQuery, options, callback);

function callback(err, queryFeed, responseOptions) {
    if (err) {
        throw err; // <-- Error thrown from this line as per stack trace
    }
    // Iterate through query feed
}
SELECT TOP 40 * FROM c WHERE (c.transmissionState = 2 AND (1512593297244 > c.dateCreated.epoch)) OR c.transmissionState = 0 ORDER BY c.dateCreated.epoch DESC
在控制台应用程序中,我尝试解析过滤器查询以验证其格式是否正确。结果如下:

var isAccepted = collection.queryDocuments(collectionLink, filterQuery, options, callback);

function callback(err, queryFeed, responseOptions) {
    if (err) {
        throw err; // <-- Error thrown from this line as per stack trace
    }
    // Iterate through query feed
}
SELECT TOP 40 * FROM c WHERE (c.transmissionState = 2 AND (1512593297244 > c.dateCreated.epoch)) OR c.transmissionState = 0 ORDER BY c.dateCreated.epoch DESC
当我按原样复制这个查询并在COSMOSDB查询窗口中运行时,它运行良好并按预期返回结果


不确定它为什么不在存储过程中运行。你知道“Dec”在错误中的意思吗?我在我的存储过程中找不到任何这样的字符串。

使用
twentymentesbefore.getTime()
,而不使用
getTime()
来获取UNIX纪元时间,您将获得完整日期,如“
2017年12月7日星期四13:26:39 GMT+1100(澳大利亚东部夏时制)
”: