このようなコマンドを実行すると、
SELECT * FROM generate_series('YESTERDAY'::date, 'TODAY'::date);
SELECT * FROM generate_series('YESTERDAY'::timestamp without time zone, 'TODAY'::timestamp without time zone);
SELECT * FROM generate_series('YESTERDAY'::timestamp with time zone, 'TODAY'::timestamp with time zone);
このようなエラーが発生しています、
ERROR: function generate_series(date, date) does not exist
ERROR: function generate_series(timestamp without time zone, timestamp without time zone) does not exist
ERROR: function generate_series(timestamp with time zone, timestamp with time zone) does not exist
timestamp without time zone
で日付系列を生成しようとすると、この同じエラーが発生します
これは generate_series
現在入力がstep
、int
、またはbigint
でない場合、numeric
が必要ですdocs
returns: timestamp or timestamp with time zone
generate_series(start, stop, step interval)
と比較して
returns: int, bigint or numeric, step defaults to 1.
generate_series(start, stop, step DEFAULT 1)
救済するには、単に日を追加し、
SELECT d
FROM generate_series(
'YESTERDAY'::date,
'TODAY'::date,
'1 day' -- REQUIRED STEP
) AS gs(d);
注: PostgreSQL 8.3以前を使用している場合にも、このエラーが発生することがあります。その場合、generate_series
は非数値型をサポートしていません
generate_series
は、Amazon Redshiftで現在サポートされている場合とサポートされていない場合があります。AmazonRedshiftは、実際にはPostgreSQLではありません。それでもサポートされない場合は、step
の有無にかかわらずエラーが発生する可能性があります。
ERROR: function generate_series(timestamp without time zone, timestamp without time zone, "unknown") does not exist
も参照してください、
多くの人がこれが機能すると報告していますが、ドキュメントはそれを反映するように更新されていません。