gpt4 book ai didi

mysql - 使用 Google 电子表格应用程序脚本中的 MySQL 数据进行数据验证

转载 作者:行者123 更新时间:2023-11-29 23:27:06 26 4
gpt4 key购买 nike

在 Google 电子表格中,我有一个应用程序脚本,它从 MySQL 数据库(结果)获取数据并将其插入特定工作表上的 lastRow()+1 中。我想运行数据验证以确保结果中的第一项不等于 A 列中最后一个单元格的内容。

除了数据验证之外,脚本中的所有内容都有效(它获取数据并将其放在我想要的位置,它只是不进行数据检查)。任何帮助/指导将不胜感激 - 谢谢!

可能相关:我希望 results[0] 返回格式为“YYYY-MM-DD”的日期,以与 lastRow() 单元格值中的内容相匹配。

这是我的代码:

function cleverlynamedfunction() {

// make the connection
var connection = Jdbc.getConnection("jdbc:mysql://[host]/[database]", "[user]", "[password]");

// perform the query
var SQLstatement = connection.createStatement();
var result = SQLstatement.executeQuery("[some query]");

// choose a range in sheet
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("data_dash");
var cell = ss.getRange("A".concat(ss.getLastRow()+1));

// validate the data doesn't already exist in the spreadsheet DOES NOT WORK YET
var test = ss.getRange("A".concat(ss.getLastRow()));
if (test.getValue() == result[0]) {
return;
}


// loop through result object, setting cell values to database data
var row = 0;
while(result.next()) {
for(var i=0; i<43; i++) { // 43 fields per record
cell.offset(row, i).setValue(result.getString(i+1));
}
row++;
}

// tidy up
result.close();
SQLstatement.close();
connection.close();

}

最佳答案

您从单元格获得的值(我猜)是一个日期,而您与之比较的值似乎是一个字符串,比较永远不会是真的。

有很多方法可以解决这个问题;您可以将这两个值都转换为日期,也可以将它们都转换为字符串。

第二种解决方案可能更容易并且不太容易出现困难。

所以你应该在你的代码中使用这样的东西:

  ...
var testAsString = Utilities.formatDate(new Date(test.getValue()), Session.getScriptTimeZone(),'yyy-MM-dd');
if (testAsString == result[0]) {
return;
}

关于mysql - 使用 Google 电子表格应用程序脚本中的 MySQL 数据进行数据验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26875275/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com