0

1950-01-31 のような db2 の日付があります。1 年前 (つまり 1949-01-31) に対応する日付を取得したいと考えています。私はから手がかりを取ります:

current date + 1 YEAR 
current date + 3 YEARS + 2 MONTHS + 15 DAYS 
current time + 5 HOURS - 3 MINUTES + 10 SECONDS

私は試します:

select dateCol-1 year FROM table, 

しかし、それは私に 1950-01-30 を与えます。年ではなく日から常に1を差し引くようです。1年前の日付を取得するにはどうすればよいですか。

4

1 に答える 1

0
select date(days(dateCol)-(case when month(dateCol)=2 and day(dateCol)=29 then 366 else 365 end)) from table


db2 => values (date(days('28.02.2004')-(case when month(dateCol)=2 and day(dateCol)=29 then 366 else 365 end)))
>  2003-02-28
1 record(s) selected.

db2 => values (date(days('29.02.2004')-(case when month(dateCol)=2 and day(dateCol)=29 then 366 else 365 end)))
>  2003-02-28
1 record(s) selected.
于 2013-10-30T16:26:10.250 に答える