前提
GASを使用しGCPのMySQLからデータをスプレッドシートに張り付けてるスクリプトを作成中です
しかし読み込みに使用しているJDBCの仕様で0000-00-00を読み込もうとするとエラーになってしまいます
調べたところ接続URLに zeroDateTimeBehavior=convertToNull を付加することで回避できるらしいのですが、どこに付加すればいいか分からず困っています
実現したいこと
接続URLに zeroDateTimeBehavior=convertToNull を付加し、0000-00-00を含むデータをMySQLから読み込む
発生している問題・エラーメッセージ
javaでは0000-00-00を受け付けずエラーになってしまう
Exception: Value '0000-00-00' can not be represented as java.sql.Date
該当のソースコード
GAS
/* Cloud SQL接続情報 */ var connectionName = 'XXXXXXXXXXXXXXXXX'; var user = 'XXXXX'; var userPwd = 'XXXXXXXXX'; var db = 'XXXXXXXDB'; var ip = 'XX.XXX.XX.XX' var dbUrl = 'jdbc:mysql://' + ip + '/' + db; function readRecords() { /* JDBCを使って1000件取得 */ var conn = Jdbc.getConnection(dbUrl, user, userPwd); var stmt = conn.createStatement(); stmt.setMaxRows(1000); var results = stmt.executeQuery(createQuery()); var numCols = results.getMetaData().getColumnCount();
試したこと
’dbUrl’に’zeroDateTimeBehavior=convertToNull’を追加
getConnection(url, info)を使用

0 コメント