質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

JDBC

JDBC(Java DataBase Connectivity)は、Javaとリーレーショナルデータベースに接続させる基本的なAPIです。Java上でSQLステートメントを発行することで、データベースの種類に影響を受ないDB操作を可能とします。

Q&A

解決済

1回答

722閲覧

GASを使ったSQLの接続URL追加

m.t.m

総合スコア14

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

JDBC

JDBC(Java DataBase Connectivity)は、Javaとリーレーショナルデータベースに接続させる基本的なAPIです。Java上でSQLステートメントを発行することで、データベースの種類に影響を受ないDB操作を可能とします。

0グッド

0クリップ

投稿2022/09/12 04:05

前提

GASとJDBCを利用してMySQLからデータを取り出したいです。
元データの日付(sikyuu_date)のNULLがJDBCだと0000-00-00となり読み込めません。
調べたところ接続URLに’zeroDateTimeBehavior=convertToNull’を付けると読み込むことができるはずですが、エラーが起こります。サポートされていないという警告ですが、GAS側の問題かJDBC側の問題か調べてもわかりませんでした。

実現したいこと

GASにてMySQLに接続し、0000-00-00を取り出したいです。
(今のソースコードはリストにしているだけですが、スプレッドシートに出力する予定)

発生している問題・エラーメッセージ

Exception: The following connection properties are unsupported: zeroDateTimeBehavior.

該当のソースコード

GAS

1var dbUrl = 'jdbc:mysql://IPアドレス/データベース?user=ユーザー名&password=パスワード&zeroDateTimeBehavior=convertToNull' 2var query = 'SELECT id,seihin_no,uketori_date FROM テーブル名' 3 4 5 6function readRecordsTest() { 7 8 /* JDBCを使って1000件取得 */ 9 var conn = Jdbc.getConnection(dbUrl); 10 var stmt = conn.createStatement(); 11 stmt.setMaxRows(1000); 12 var results = stmt.executeQuery(query); 13 var numCols = results.getMetaData().getColumnCount(); 14 15 const array = []; 16 17 while(results.next()) { 18 const cols = []; 19 for (let col = 0; col < numCols; col++) { 20 const cellData = results.getString(col + 1); 21 cols.push(cellData); 22 } 23 array.push(cols); 24 } 25 26Logger.log(array) 27}

試したこと

zeroDateTimeBehavior=CONVERT_TO_NULLは同じ結果でした。

補足情報(FW/ツールのバージョンなど)

&zeroDateTimeBehavior=convertToNullを除いた状態で動作することは確認済みです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.t.m

2022/09/12 04:20

元データの空白をNULLにすることで解決しました。
m.t.m

2022/09/12 07:23

ありがとうございます 修正しました
guest

回答1

0

自己解決

元データの空白をNULLにすることで解決しました

投稿2022/09/12 07:23

m.t.m

総合スコア14

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問