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

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

新規登録して質問してみよう
ただいま回答率
85.47%
SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

2回答

111閲覧

postgres generate_seriesで 2024-03-01から 2024-03-31までのデータを生成できない

Awtanabe

総合スコア25

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2024/04/22 11:26

実現したいこと

下記のsqlを実行して、3月1日から3月31日までのレコードを作成したい

SELECT DATE_TRUNC('day', days) AS period_day FROM generate_series('2024-03-01'::DATE, '2024-03-31'::DATE, '1 day') AS days

発生している問題・分からないこと

実行結果としては 3月20日までしかデータが作成されない

cloud sql で実行しております

該当のソースコード

sql

SELECT
DATE_TRUNC('day', days) AS period_day
FROM
generate_series('2024-03-01'::DATE, '2024-03-31'::DATE, '1 day') AS days

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

実行結果としては 3月20日までしかデータが作成されない
cloud sqlで実行

補足

特になし

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

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

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

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

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

guest

回答2

0

そのsqlはどのようなツールで実行しましたか?
そのツールでの表示行数の上限を20行にしているのだと思われます。

投稿2024/04/22 12:51

sazi

総合スコア25199

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

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

0

ここで試しましたが
SQL自体は問題ないです
https://www.crunchydata.com/developers/playground

出力行数が多いと、次のようにMOREと表示され、ユーザー操作を求められます(ENTERキーを押すと、続きの行が表示されます)。
それが環境で無視されている可能性はあるかもしれません。

sql

1 2postgres=# SELECT DATE_TRUNC('day', days) AS period_day FROM generate_series('2024-03-01'::DATE, '2024-03-31'::DATE, '1 day') AS days; 3 period_day 4------------------------ 5 2024-03-01 00:00:00+00 6 2024-03-02 00:00:00+00 7 2024-03-03 00:00:00+00 8 2024-03-04 00:00:00+00 9 2024-03-05 00:00:00+00 10 2024-03-06 00:00:00+00 11 2024-03-07 00:00:00+00 12 2024-03-08 00:00:00+00 13 2024-03-09 00:00:00+00 14 2024-03-10 00:00:00+00 15 2024-03-11 00:00:00+00 16 2024-03-12 00:00:00+00 17 2024-03-13 00:00:00+00 18 2024-03-14 00:00:00+00 19 2024-03-15 00:00:00+00 20 2024-03-16 00:00:00+00 21 2024-03-17 00:00:00+00 22 2024-03-18 00:00:00+00 23 2024-03-19 00:00:00+00 24 2024-03-20 00:00:00+00 25 2024-03-21 00:00:00+00 26--More--

念のため出力行数の確認

sql

1postgres=# SELECT COUNT(DATE_TRUNC('day', days)) FROM generate_series('2024-03-0 21'::DATE, '2024-03-31'::DATE, '1 day') AS days; 3 count 4------- 5 31 6(1 row)

投稿2024/04/22 11:37

pea

総合スコア426

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問