結果を10進数にキャストして、日数の差を取得しようとしています:
SELECT
CAST( TO_DATE('2999-01-01','yyyy-mm-dd') - TO_DATE('2909-01-01','yyyy-mm-dd') AS DECIMAL )
;
2 番目の日付に 1 か月を追加すると、次のようになります。
SELECT
CAST( TO_DATE('2999-01-01','yyyy-mm-dd') - (TO_DATE('2909-01-01','yyyy-mm-dd') + INTERVAL '1 MONTH' * (1) ) AS DECIMAL )
;
エラーが表示されます: エラー: タイプ間隔を数値にキャストできません
OK、char にキャストして結果を取得できます。
SELECT
CAST( TO_CHAR( TO_DATE('2909-02-10','yyyy-mm-dd') - (TO_DATE('2909-01-01','yyyy-mm-dd') + INTERVAL '1 MONTH' * (1) ), 'DD') AS DECIMAL )
;
ただし、この場合、TO_CHAR キャストで変更された最初のクエリは機能しなくなります。
SELECT
CAST( TO_CHAR(TO_DATE('2999-01-01','yyyy-mm-dd') - TO_DATE('2909-01-01','yyyy-mm-dd'), 'DD') AS DECIMAL )
;
ERROR: 複数の小数点があります。
だから、私の質問は、どうすれば同じ sql ステートメントを使用して日数を取得できますか? 両方の SQL クエリに対して。