2

CSVからGoogleスプレッドシートにデータをインポートするロジックをコーディングしました。次のステップとして、JDBCサービスを使用してコピーしたデータをCloudSQLインスタンスにプッシュしようとしています。DateTime(バックエンドに)タイプの列が1つあります。SpreadhseetからCloudSQLにデータをプッシュするロジックではJdbc.parseDate()、スプレッドシートの値をMysql /CloudSQLに変換するメソッドを使用しています。

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

どこ:

  1. カウンターはインデックスであり、
  2. colValueは、Googleスプレッドシートの列の下にある値です

そうしようとすると、エラーが発生します:

申し訳ありませんが、サーバーエラーが発生しました。少し待ってから、もう一度やり直してください。

それ以外の場合は、使用してもエラーは発生しませんでした

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

これを解決する方法を教えてください。

4

2 に答える 2

0

タイプの混乱の問題のようです。Jdbc.newDate()引数として整数が必要です。日付オブジェクトを提供している可能性があります(データがスプレッドシートにどのように保存されているかによって異なります)。

オブジェクトを日付としてスプレッドシートに保存していると仮定すると、を使用してこれを修正することができますJdbc.newDate(colValue.getTime())

于 2013-02-28T15:32:31.923 に答える
0

最後に、私のために働いたコードは次のとおりです。

//スプレッドシートのレコードを繰り返し処理します。

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

どこ:

  • colValue:スプレッドシートから読み取った列の値です

  • counter:は、値を挿入する必要があるインデックスです。

上記のコードを使用して、スプレッドシートから日付を読み取り、クラウドSQLデータベースのテーブルの列(DateTimeタイプ)に挿入することができました。

于 2013-03-13T10:31:27.900 に答える