Visualization.query无法从Google Appscript函数中识别日期

时间:2017-05-22 09:53:56

标签: google-apps-script google-visualization google-apps

目前使用Visualization API和Google App Script调用

通过doGet()函数

'index.html'。

我正在使用可视化来使用visualization.Query()函数生成自定义表,并使用URIComponent插入实际查询。

当查询被硬编码时,一切正常。

日期功能,它会带回我想要查询的日期。

function subtractDaysFromDate(date,d){
// d = number of day ro substract and date = start date
var result = new Date(date.getTime()-d*(24*3600*1000));
var x = String(Utilities.formatDate(result, "GMT", "yyyy-MM-dd"));
return x
}

 function subtractedDateForUrl() {
 var test = String(subtractDaysFromDate(new Date(),5));
 Logger.log(test)     
 }

subtractedDateForUrl()在Logger.log(test)中返回我想要的确切字符串;

[17-05-22 02:26:43:562 PDT] 2017-05-17

然后我调用了subtractDateForUrl()来显示日期,以便我可以在查询中添加它。

 var dateString1 = subtractDateForUrl();
 //Works
 var query = encodeURIComponent("SELECT * WHERE A = date '2017-05-17'");
 //Does not work
 var query = encodeURIComponent("SELECT * WHERE A = date '" + dateString1 + "'");

这完全相同,但由于某种原因它不起作用。

我尝试了以下(这对任何一种都不起作用);

 var removeQuotes = dateString1.replace(/\"+/g,"")
 var query = encodeURIComponent("SELECT * WHERE A = date '" + removeQuotes + 
 "'");
  var convertToHtmlOutput = 
 HtmlService.createHtmlOutput(dateString1).getContent()
 var query = encodeURIComponent("SELECT * WHERE A = date '" + convertToHtmlOutput + "'");

1 个答案:

答案 0 :(得分:0)

以下功能不会返回任何内容......

function subtractedDateForUrl() {
  var test = String(subtractDaysFromDate(new Date(),5));
  Logger.log(test);
}

因此,此处dateString1将为undefined

var dateString1 = subtractDateForUrl();

尝试添加return声明...

function subtractedDateForUrl() {
  var test = String(subtractDaysFromDate(new Date(),5));
  Logger.log(test);
  return test;
}