質問: ポスグレデータベースを、AWSのdynamodbへ移行するためまずjson形式で抜き出したいと考えています。 そのため複数のテーブルを範囲指定し、範囲内の全てのカラムをselect文をjson形式に出力するため以下の文を考えました。 ``` SELECT to_json(table_100) from table_100 date(timestamp) BETWEEN '198707050010' AND '202007052400'; ``` しかしこのままではbetweenでsintax errorが出てしまいます。 ポスグレデータベースを、AWSのdynamodbへ移行する、手順、長い道のりになりますがご教授おねがいします。
回答: 質問文に書かれてるSQLの問題点は2つほどありそうです。 この2点を対応してもまだエラーが出る場合、表示されたエラーメッセージと共に **新しく別の質問を投稿してください。** 1. 条件の前に `WHERE` が書かれていない 2. 条件の日付書式(フォーマット)が誤っている * 日付と時間を指定する場合、間にスペースが必要です 修正後のSQLは以下のようになるかと思います。 ``` SELECT to_json(table_100) FROM table_100 WHERE date(timestamp) BETWEEN '19870705 0010' AND '20200705 2400'; ``` また、 `date()` を使用しているので、時間の指定はほぼ意味をなさないかと思います。 `'20200705 2400'` の場合、 `2020-07-06` のデータは取得できません。 `2020-07-06` のデータも取得する場合、条件を `'2020-07-06'` や `'20200706'` に変更してください。 (`'2020-07-05'` までのデータで問題なければ、修正の必要はありません) PostgreSQLで使用可能な日付の書式の一例は、ドキュメントを参照してください。