2017-06-29 8 views
0

私はSQLスクリプト(Oracle)のヘルプを探しています。 DATEのDAYフィールドを条件で変更する必要があります。 DATEが1日の最後の日である場合は1日減、それ以外の場合は1日増分します。日付形式はDD-MMM-YY HH:MM:SS AM/PMです。日付フィールドの日を変更するSQLスクリプト

あなたのお手伝いをよろしくお願いいたします。

+1

本当にあなたの日付は文字列として保存されていますか? – Hogan

答えて

2

私はあなたの日付フィールドが実際に日付かタイムスタンプであると仮定します。そうでない場合は、深い犬のdooにいるためです。ここで

は、あなたがそれを行う方法です:オラクルDATE列が時刻部分が含まれているため

update some_table_you_did_not_name 
set date_field = case when EXTRACT(month from next_day(date_field)) <> EXTRACT(month from date_field) 
         then date_field - 1 day 
         else date_field + 1 day 
       end 
+1

それにビートしてください+1 –

+1

これはオラクルでは動作しません –

+0

@a_horse_with_no_name - 動作しない部分は - 月機能? – Hogan

1
update the_table 
    set date_column = case 
        when trunc(last_day(date_column)) = trunc(date_column) 
         then date_column - 1 
         else date_column + 1 
        end; 

trunc()が必要です。

関連する問題