0

2013 年 5 月 (MonYYYY) の形式のテーブルからの日付値を変更する必要があります。列自体は VARCHAR です

私の select ステートメントでは、前月 (Apr2013) を取得しようとしています。SYSDATEを使用していた場合、いくつかの調査を行ったところ、次のことがわかりました。

select to_date(add_months(sysdate, 'MONYYY')-1) from dual

上記の日付構造で機能させるにはどうすればよいですか? 私はもう試した:

select to_date(add_months(date.datetable, MONYYY)-1) from datetable
4

1 に答える 1

2

ADD_MONTHS関数には、入力として日付変数が必要です。したがって、最初に varchar 列を日付型に変換してからadd_months関数を適用する必要があります。

SELECT ADD_MONTHS (TO_DATE ('May2013', 'monyyyy'), -1) FROM DUAL;

戻り型は日付になります。この場合、4 月 1 日の 0 時を返します。

于 2013-06-09T04:59:41.363 に答える