0

現在の日付から以前の日付までの月を取得したい。

SELECT  MONTHS_BETWEEN(to_date(fld_valid_from,'yyyy-mm-dd hh24:mi:ss'),TO_DATE(sysdate, 'yyyy-mm-dd hh24:mi:ss')) num_months
 FROM   tbl_customer

しかし、それは機能していません。それが正しいかどうかはわかりません。

4

2 に答える 2

0

どのようなエラー メッセージが表示されますか? TO_DATE コマンドを使用せずに 2 つの変数を比較してみましたか?

SELECT MONTHS_BETWEEN (trunc(fld_valid_from),trunc(sysdate))
FROM tbl_customer

これは、列 fld_valid_from が日付型の場合に機能します。日付を別の日付と比較しています。TO_DATE を使用して、文字列データ型を日付データ型に変換します。

TRUNC 関数を使用すると、日付からタイムスタンプを削除して、日付のみを取得します。

SELECT SYSDATE, TRUNC(SYSDATE) FROM DUAL;

SYSDATE                    TRUNC(SYSDATE)
---------------------------------------
16/07/2013 10:45:53        16/07/2013

それが役に立てば幸い。

よろしく。

于 2013-07-16T15:47:10.213 に答える