私はストアドプロシージャの一部としてサマリーテーブルを構築していますが、私は2つのカラムを持っています。最初の列は開始を示す必要があり、2番目の列は、四半期を指定する数字である入力パラメーターに基づく日付範囲の終わりを示す必要があります。私はAskTomから以下を抽出することができましたが、いくつか質問があります。Oracleの四半期に基づいて日付範囲を抽出して表示するにはどうすればよいですか?
Open C1 FOR
SELECT (SELECT TRUNC (SYSDATE, 'Q')-1+1 AS 'StartOf' FROM DUAL),
SELECT (SELECT TRUNC(ADD_MONTHS (SYSDATE, +3), 'Q')-2 AS 'EndOf' FROM DUAL)
FROM DUAL;
質問1.ここに数学がLeapYearsを占めるだろう...私はそれはないと思うが、私はそれを処理するかどうかはわかりません。
質問2.入力パラメータ 'inQuarter'を特定の四半期に追加するにはどうすればよいですか?私はsysdateの代わりにそれを置いてみましたが、私は最初にそれを再フォーマットする必要がありますか?
お返事ありがとうございます。
なぜあなたは-1 + 1を持っていますか? - それはただ取り消すつもりです。うるう年についてはどこで説明する必要がありますか?四半期の日付は、1-JAN、1-APR、1-JUL、および1-OCTです。これは特定の四半期に使用する予定です。 –
@dee - inQuarterは何を表していますか?あなたはそれがおそらくあなたにとって非常に特有のものを意味する「四半期を指定する数字」だと言いますが、それが私にとって何であるかははっきりしません。今年の第1四半期に解釈されるはずの1のような数字を渡しているということですか?それとも、2004年の第3四半期に解釈されるはずの200403のような数字があるのでしょうか?または、他の何か? –
適切に明確化されていないことに対する謝罪。 inQuarterは、四半期を示す1桁の数字の1〜4です。これはまた、指定した四半期の最初の日と最後の日の両方を与える必要があるYYYYであるinYearも存在することを思い出させます。速い応答に感謝します。 – dee