コンテンツにスキップ

列の型変更

列のデータ型を変えます。変換はデータベース側で行われるので、読める形も失敗したときの振る舞いも、つなぎ先のデータベースによって変わります。

分析プロジェクトとの違い

見るところSQLビルダー分析プロジェクト
日付の形式つなぎ先のデータベースの書き方をそのまま入れる候補から選ぶ + 自分で入力
JSON の列型を文字で定義できるない
エラーを無視する効くデータベースと効かないデータベースがある変換できない値には効くが、日付形式の指定ミス・範囲外の日付・列が見つからないときには効かない(エラーと対処)
変換できる形の一覧データベース側が決めるnehan 側で決まっている

入出力

ポート内容
入力データデータ
出力データデータ

設定項目

「オプション」はチェックを入れるまで中身が出ません。 見出しの横のチェックボックスを on にすると、エラーを無視する が出ます。

変更
型を変える列の組を足していきます。1 つの組は下の 3 つからできています。
列を選択必須
型を変える列。
型を選択必須
変更後の型。文字列 / 数値 / 日付 / 日付時間 の 4 つから選びます。選んだ列が JSON でないときに出ます。
型を定義する必須
選んだ列が JSON のときに、こちらが代わりに出ます。データベースの型名をそのまま入れます。
日付のフォーマットを指定
変更後の型が日付か日付時間のときに出ます。空にすると、日付は YYYY-MM-DD 相当、日付時間は YYYY-MM-DD HH:MI:SS 相当の既定値が使われます。既定値の書き方もデータベースごとに違います(PostgreSQL は YYYY-MM-DD HH24:MI:SS、MySQL は %Y-%m-%d %H:%i:%S)。
エラーを無視する
変換できない値を失敗させずに空にします。効くのは Google BigQuery / Amazon Athena / Presto / Snowflake だけです。

効かないデータベース

つなぎ先「エラーを無視する」
Google BigQuery効く(SAFE_CAST)
Amazon Athena / Presto効く(TRY_CAST)
Snowflake効く
MySQL / PostgreSQL / Amazon Redshift / Treasure Data / SQL Server効かない(on にしても SQL は変わりません)

効かないデータベースで変換に失敗すると、ノードごとエラーで止まります。先に条件で行を絞り込みで変換できない行を外してください。

生成される SQL

PostgreSQL につないだ場合です。

SELECT
CAST("数量" AS float8) AS "数量",
TO_DATE("受注日", 'YYYY-MM-DD') AS "受注日",
"店舗"
FROM "orders"

列の並びは変わりません。 型を変えた列もそのままの位置に残ります。

型の名前は nehan の名前ではなく、そのデータベースの型名に置き換わります。 PostgreSQL なら数値は float8、文字列は varchar です。

日付・日付時間にするときは TO_DATE / TO_TIMESTAMP のような専用の関数になり、それ以外は CAST です。どちらになるかは元の列の型でも変わります(PostgreSQL では、日付の列を日付時間にするときは CAST、数値の列からなら TO_TIMESTAMP)。MySQL では STR_TO_DATE、Google BigQuery では PARSE_DATE のように関数そのものが変わります。

エラーと対処

どのエラーも、設定を直してノードを実行し直せば消えます。

Treasure Data で日付型にしようとした

Treasure Data につないだビルダーで、変更後の型に日付を選ぶと出ます。

日付型はサポートされていません

直し方 — 文字列のままにするか、日付ではなく数値(UNIX 時間)で扱ってください。

Treasure Data で日付時間型にしようとした

同じく Treasure Data で、変更後の型に日付時間を選ぶと出ます。

日付時間型はサポートされていません

直し方 — 上と同じです。

列が選ばれていない

型だけ選んで列を選んでいない行があると出ます。

列を選択してください

直し方 — 列を選ぶか、その行を削除してください。

上流にない列が選ばれている

前のノードで列が消えたあとに実行すると出ます。

存在しない列が選択されています

直し方 — 列を選び直してください。

入力がつながっていない

前のノードがつながっていないと出ます。

カラムが選択されていません。条件を確認してください

直し方 — 入力にノードをつないでください。

よく使う例

1. 文字列の数字を数値にする

お題 — "1200" のまま入っている金額で足し算したい

入力 — 売上(文字列)

設定 — 売上 → 数値

出力 — 売上 が数値になり、数値列同士の演算が使えます

2. 文字列の日付を日付型にする

お題 — 2026-04-01 の形で入っている列を日付として扱いたい

入力 — 受注日(文字列)

設定 — 受注日 → 日付、フォーマットは空欄(PostgreSQL なら既定の YYYY-MM-DD が使われます)

出力 — 受注日 が日付型

3. 区切りが違う日付を読む

お題 — 2026/04/01 のようにスラッシュ区切りで入っている

入力 — 受注日(文字列。2026/04/01 の形)

設定 — 日付、フォーマットに PostgreSQL なら YYYY/MM/DD

出力 — 日付型

4. 変換できない値を空にする

お題 — - や 不明 が混ざっていて変換が止まる(BigQuery につないでいる)

入力 — 売上(文字列。1200 - 不明 が混ざっている)

設定 — 数値、「エラーを無視する」を on

出力 — 変換できた行は数値、できなかった行は空欄

5. JSON の中身の型を決める

この例は、選んだ列が JSON のときだけです。 列の型が JSON だと 「型を選択」が消えて、代わりに型を定義するという入力欄が出ます。 BigQuery のように JSON を持てるデータベースにつないだときに現れます。

お題 — JSON の列を、中身の形どおりに扱いたい

入力 — payload(JSON。中身は {"count": 3} のような形)

設定 — 「型を定義する」に STRUCT<count INT64> のように、つなぎ先の データベースの書き方で型名を入れる

出力 — payload がその型として扱われ、後ろのノードで count を 取り出せるようになります

関連