gpt4 book ai didi

google-apps-script - google app脚本使用jdbc将日期插入表

转载 作者:行者123 更新时间:2023-12-02 22:27:15 26 4
gpt4 key购买 nike

我试图在我的一个 Oracle 表中插入一个日期,我尝试使用 setTimestamp、setDate 甚至 setObject,但这些方法都不起作用。任何人都知道插入日期值的正确方法是什么?

var stmt = conn.prepareStatement("insert into blob_table (filename,blob_field,date_insert) values (?,?,?)");
var date_insert=new Date();

stmt.setString(1, mess.getAttachments()[0].getName());
stmt.setBytes(2, mess.getAttachments()[0].getBytes());
//stmt.setTimestamp(3,(JdbcTimestamp)date_insert.getTime);
stmt.setObject(3, date_insert);
//stmt.setDate(3,date_insert.getDate() );

最佳答案

您应该使用Jdbc.newTimestamp 方法创建一个JdbcTimestamp 对象,如documented .

例子:

var date_insert = new Date();
var jdbc_timestamp = Jdbc.newTimestamp(date_insert.getTime());
...
stmt.setTimestamp(x, jdbc_timestamp);

同样的原则适用于JdbcDateJdbcTime

在你的情况下:

var stmt = conn.prepareStatement("insert into blob_table (filename,blob_field,date_insert) values (?,?,?)");

var date_insert = new Date();
var timestamp = Jdbc.newTimestamp(date_insert.getTime());

stmt.setString(1, mess.getAttachments()[0].getName());
stmt.setBytes(2, mess.getAttachments()[0].getBytes());
stmt.setTimestamp(3, timestamp);

如果您需要处理特定的时区,您可以使用另一种方法。在此示例中,我使用与我正在处理的电子表格相同的时区:

var ss = SpreadsheetApp.getActiveSpreadsheet();
var js_date = new Date();
var date_str = Utilities.formatDate(js_date, ss.getSpreadsheetTimeZone(), 'yyyy-MM-dd HH:mm:ss');
var timestamp = Jdbc.parseTimestamp(date_str);
stmt.setTimestamp(x, timestamp);

希望对您有所帮助:)

关于google-apps-script - google app脚本使用jdbc将日期插入表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12775932/

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