问题是由于Google Apps Script默认使用美国时区,因此在从数据库中读取DATETIME时可能会出现偏差。为了解决这个问题,需要将时区设置为UTC。
以下是一个示例代码,它从数据库中读取一个DATETIME字段并将其转换为UTC格式。
function readDatetime() {
var conn = Jdbc.getConnection("jdbc:mysql://:/", "", "");
var stmt = conn.createStatement();
var rs = stmt.executeQuery("SELECT datetime_field FROM my_table");
while (rs.next()) {
var datetime = rs.getTimestamp("datetime_field");
var utcDatetime = Utilities.formatDate(new Date(datetime.getTime()), "UTC", "yyyy-MM-dd'T'HH:mm'Z'");
Logger.log(utcDatetime);
}
rs.close();
stmt.close();
conn.close();
}
这段代码从名称为“my_table”的表中读取“datetime_field”字段,并使用Utility.formatDate函数将其转换为UTC格式。该函数将DATETIME转换为JavaScript中的Date对象,然后将其转换为UTC格式。