Oracle Months_Betweenファンクションの動作を理解するのに役立つ人はいますか? 私がselect MONTHS_BETWEEN('02-28-2015', '01-28-2015')
を照会すると、1の整数値が得られますが、私が照会すると select MONTHS_BETWEEN('02-28-2015', '01-29-2015')
となり、私は0.96になります。MONTHS_BETWEENファンクション
0
A
答えて
2
Googleがお手伝いできます。あなたは "Oracle months_between"を検索することができます。これにより、ドキュメントが表示されます。 https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions089.htm
注 - 「31日間の月」のコンベンションで月末に奇妙な結果が生じることがあります。検討してください:
select months_between(date '2016-07-02', date '2016-07-01') as one_day,
months_between(date '2016-07-01', date '2016-06-30') as another_day
from dual;
ONE_DAY ANOTHER_DAY
---------- -----------
.032258065 .064516129
1 row selected.
6月は31日を過ぎていました。それはしませんが、months_between
と同じように扱います。
0
あなたが月単位の月数を決定しようとしていて、日数を気にしないで作業している場合は、私はこのような状況で自分自身を見つけることが多い...あなたは月のセットの月の数を決定するためにかなり信頼できる日付の操作を少し行うことができます。例えば、7月から9月までは日付で始まります。
Thusly:
WITH MONTHS AS (
SELECT
SYSDATE DATE_ONE
, SYSDATE+57 DATE_TWO
FROM DUAL
)
SELECT
m.*
,TO_CHAR(m.DATE_ONE,'MON') START_MONTH
,TO_CHAR(m.DATE_TWO,'MON') END_MONTH
,MONTHS_BETWEEN(m.DATE_TWO,m.DATE_ONE) UNEXPECTED_RESULT
,MONTHS_BETWEEN(LAST_DAY(m.DATE_TWO),LAST_DAY(ADD_MONTHS(m.DATE_ONE,-1))) EXPECTED_RESULT
FROM MONTHS m
;
関連する問題
- 1. ファンクションと 'ファンクション'コンストラクタ
- 2. ファンクションとファンクションの違い
- 3. this.textファンクション
- 4. mysqli_num_rowsファンクション
- 5. rのreadline関数とmonths_betweenの使い方は?
- 6. FireFox Comファンクション
- 7. AzureファンクションBLOBバインド
- 8. Apache Pig AVGファンクション
- 9. PL/SQLファンクション・パラメータ
- 10. ケース・ステートメント/ファンクション
- 11. java - ファンクションのクラス
- 12. ファンクション付きファンクションコンポーネント
- 13. MouseMoveファンクションとモジュール
- 14. ファンクション属性returns_twice
- 15. ブランチ付きファンクション
- 16. Swift FirebaseファンクションReturn
- 17. ファンクションRプログラミング
- 18. ファンクションIF、ELSE文
- 19. smtpファンクションのFget
- 20. Tmuxマクロ/ファンクション
- 21. タイム・ファンクション・コール
- 22. スイッチとファンクション
- 23. Java Send Mailファンクション
- 24. Pythonのハイブリッドジェネレータ/ファンクション
- 25. ファンクションinクラス
- 26. PL/SQLファンクション
- 27. DAX-RANKファンクション
- 28. コアデータNSManagedObject生成ファンクション
- 29. AndEngine簡単なファンクション
- 30. PL/SQLファンクション・カウント・ユーザー
あなたは1月29日から行ってきました - > 2月28日。それは1ヶ月未満です。月が常に一定の大きさを持たないので、月の数学はいつも厄介な臭いの混乱です。それは28,29,30,31です。 –
@MarcBその場合、なぜ選択肢MONTHS_BETWEEN('02 -28-2015 '、'01 -31-2015')の1を得るのですか – Peppy