如何使用googleapps脚本将google电子表格中的日期正确地写入awsrds数据库?

k5ifujac  于 2021-06-20  发布在  Mysql
关注(0)|答案(0)|浏览(202)

我有一个谷歌应用程序脚本,如下所示:

// Initialize DB variables
var address = 'my-test-db.abcdefg.rds.amazonaws.com'
var user = 'my_name'
var password = 'my_password'
var db = 'my_db'
var dbUrl = 'jdbc:mysql://' + address + '/' + db + '?useUnicode=true&characterEncoding=UTF-8'

function testDateTime() {

  // Read data inside the sheet
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0]
  var cell = sheet.getRange('D3:D3')
  var testDateStr = cell.getValue()
  Logger.log(testDateStr)  // Fri Mar 09 00:00:00 GMT+08:00 2018
  var testDate = new Date(testDateStr)

  // Prepare SQL statement
  var conn = Jdbc.getConnection(dbUrl, user, password)
  var sql = 'UPDATE my_table SET start_date=? WHERE id=1'
  var stmt = conn.prepareStatement(sql)
  stmt.setTimestamp(1, Jdbc.newTimestamp(testDate.getTime()))
  Logger.log(testDate.getTime())  // 1.5205248E12

  // Execute SQL statement
  stmt.execute()  // The value inside my AWS RDS is 2018-03-08 08:00:00

  // Clean up
  stmt.close()
  conn.close()

}

它读取单元格中的内容 D3:D3 从google电子表格中,然后将其值写入awsrds。
当工作表中的值为 2018/03/09 ,我发现了 2018-03-08 08:00:00 已经写入数据库了。为什么这两个值之间有时差?
时代转换器说 1.5205248E12 属于2018-03-09 utc+8。
这是我的 appsscript.json 文件:

{
  "timeZone": "Asia/Taipei",
  "dependencies": {
  },
  "exceptionLogging": "STACKDRIVER"
}

的时区 Asia/TaipeiUTC+8 .
这个 time_zone my aws rds的参数也设置为 Asia/Taipei .
的列类型 start_datedatetime DEFAULT NULL .
我不明白为什么谷歌电子表格单元格的值和 start_date 在我的生活中。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题