用于修改DAY of Date字段的SQL脚本

时间:2017-06-29 04:01:53

标签: sql oracle

我正在寻找SQL脚本(Oracle)的帮助。我需要用条件改变DATE的DAY字段。当DATE是月的最后一天时减少1天,否则增加1天。日期格式为DD-MMM-YY HH:MM:SS AM / PM。

感谢您的帮助!!

2 个答案:

答案 0 :(得分:2)

我假设你的日期字段实际上是一个日期或时间戳,因为如果不是你在深狗。

以下是您的操作方法:

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)

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()是必要的,因为Oracle DATE列包含时间部分。