我有一个谷歌应用程序脚本,如下所示:
// 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/Taipei
是 UTC+8
.
这个 time_zone
my aws rds的参数也设置为 Asia/Taipei
.
的列类型 start_date
是 datetime DEFAULT NULL
.
我不明白为什么谷歌电子表格单元格的值和 start_date
在我的生活中。
暂无答案!
目前还没有任何答案,快来回答吧!