前提・実現したいこと
postgresqlで使っているテーブルの一部に時間を以下のように格納しているカラムがあります。
202003012400(これは2020年3月1日24:00を表しています。)
SELECT文出力時に
この時間格納しているカラムの下四桁が2400だったら繰り上げて
202003012400 → 202003020000
のように置換してくれるSELECT文を
SUBSTRINGとCASEを組み合わせて書いているのですが
どうにもエラーが出てうまくいきません。
■■な機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
psql:time.sql:5: ERROR: operator does not exist: text = integer HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
該当のソースコード
sql
1WITH tmp AS ( 2 select time, CASE WHEN SUBSTR(time,8,4) = 2400 THEN time + 7600 END 3 from :tablename 4) 5 SELECT to_json(tmp) FROM tmp;
試したこと
エラー文を調査し、最適なsqlの情報を集め整形
補足情報(postgre 9.36)
ここにより詳細な情報を記載してください。
作成したSQL、エラーの内容、テーブル定義を質問文を編集して追記してください。
>SUBSTRINGとCASEを組み合わせて書いているのですが
>どうにもエラーが出てうまくいきません。
CREATE TABLEと現行のエラーになるSELECT文を https://teratail.com/help/question-tips#questionTips3-7 の [コード] で追記してください。
Progateを回答者皆さんが使っているわけではありません。
この質問だけで誰でもわかる様な質問にしてください。
(質問本文は修正できます。
質問は何でしょうか。
progateちゃいますpostgre
あっ。失礼しました。。
あなたの回答
tips
プレビュー