Javascript 如何在Azure存储过程中使用SQL中的变量
我需要一个每天运行一次的存储过程,对当天收集的数据进行度量计算。我将得到一个datetime,它相当于上一次运行该过程的时间(基本上是昨天),并希望得到自该时间以来添加的所有数据 下面的代码不起作用,因为它没有用字符串替换timestamp变量。是否有什么特别的原因来尊重这一点?我不想单独构建查询字符串,但如果需要,我会这样做Javascript 如何在Azure存储过程中使用SQL中的变量,javascript,sql,azure-cosmosdb,Javascript,Sql,Azure Cosmosdb,我需要一个每天运行一次的存储过程,对当天收集的数据进行度量计算。我将得到一个datetime,它相当于上一次运行该过程的时间(基本上是昨天),并希望得到自该时间以来添加的所有数据 下面的代码不起作用,因为它没有用字符串替换timestamp变量。是否有什么特别的原因来尊重这一点?我不想单独构建查询字符串,但如果需要,我会这样做 var timestamp = "Some Datetime String"; // Query documents and take 1st item. var is
var timestamp = "Some Datetime String";
// Query documents and take 1st item.
var isAccepted = collection.queryDocuments(
collection.getSelfLink(),
'SELECT * FROM root r WHERE r.dateadded > timestamp',
function (err, feed, options) {
var jstr = JSON.stringify(element);
data = JSON.parse(jstr);
console.log(data["value"]);
});
您将它作为字符串传递,而不是变量
var timestamp = "Some Datetime String";
// Query documents and take 1st item.
var isAccepted = collection.queryDocuments(
collection.getSelfLink(),
"SELECT * FROM root r WHERE r.dateadded > " + timestamp,
function (err, feed, options) {
var jstr = JSON.stringify(element);
data = JSON.parse(jstr);
console.log(data["value"]);
});
您可能希望参数化查询以避免sql注入
var timestamp = "Some Datetime String";
// Query documents and take 1st item.
var isAccepted = collection.queryDocuments(
collection.getSelfLink(),
{
query: "SELECT * FROM root r WHERE r.dateadded > @timestamp",
parameters: [ { "name":"@timestamp", "value":timestamp } ]
},
function (err, feed, options) {
var jstr = JSON.stringify(element);
data = JSON.parse(jstr);
console.log(data["value"]);
});
哦,是的。我没有想到我可以内联连接。参数化也很好。