2013-02-28 44 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