2013-02-28 58 views
2

我已编码的逻辑在我从CSV导入数据到哪里谷歌电子表格时。作为下一步,我尝试使用JDBC服务将复制的数据推送到Cloud SQL实例。我有一列是DateTime(在后端)。在将数据从spreadhseet推送到云SQL的逻辑我使用Jdbc.parseDate()方法将电子表格中的值转换为Mysql/Cloud SQL。遇到服务器错误试图解析日期

例如:stmt.setDate(counter, Jdbc.parseDate(colValue));

其中:

  1. 计数器指数和
  2. COLVALUE是在谷歌电子表格

列下的值在上午试图这样做,我收到错误:

We're sorry, a server error occurred. Please wait a bit and try again.

我没有得到任何错误,否则,即使是在我使用

stmt.setDate(counter, Jdbc.newDate(colValue)); 

请告知这可怎么解决。

回答

0

最后为我工作的代码是:

//迭代通过电子表格记录,

var tempDate = Utilities.formatDate(colValue, "IST", "yyyy-MM-dd HH:mm:ss"); 
stmt.setObject(counter, tempDate); 

其中:

  • COLVALUE:是的值从电子表格列读

  • 计数器:是索引,其中我必须插入值

使用上述代码我能够读取从电子表格中的日期和在表中的云SQL数据库(的DateTime类型)柱插入。

0

它看起来可能是类型混乱的问题。 Jdbc.newDate()需要一个整数作为参数。您可能提供了一个日期对象(取决于数据如何存储在电子表格中)。

假设你存储的对象为电子表格中的日期,你可以尝试使用Jdbc.newDate(colValue.getTime())来解决这个问题。

+0

我的意图是解析日期。日期在电子表格中显示为“9/8/2012 9:21:09”。当我使用apps脚本阅读电子表格的数据时,我在日志中看到(查看日志)日期为“Sat Sep 08 2012 09:21:09 GMT + 0530(IST)”。所以在推送数据到后端之前,我试图使用方法Jdbc.parseDate(colValue)来转换日期。这是我得到错误的地方。 – user1868355 2013-03-01 06:46:07

+0

这是因为Spreadsheet为您提供了一个javascript Date对象的值。你试过我提供的代码吗? 'Jdbc.newDate(colValue.getTime())'? – 2013-03-01 12:16:21

+0

在执行此操作时, var dt = Jdbc.newDate(colValue.getTime()); 我得到输出=日期。 在下面记录器执行, Logger.log( “测试::” + dt.getTime()); 我得到的输出是时间格式的日期和时间。 我想将列数据推送到云端SQL。请告知如何实现这一点。 – user1868355 2013-03-02 17:45:09