2013-10-30 47 views
0

我在db2中有一個這樣的日期:1950-01-31。我希望得到與一年前相對應的日期(即1949-01-31)。 我拿一個線索來自:在db2中獲取一年前的日期

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年1月30日。 看起來它總是從當天而不是一年中扣除1。 我怎樣才能得到一年前的日期。

+0

你用什麼客戶端來運行你的查詢?偶然,您的數據庫是否處於Oracle兼容模式? – mustaccio

+0

我使用dbvisualizer連接到一個複合數據虛擬層,它在後臺連接到db2 – Victor

+0

日期爲29.02.2004時您期望的日期? 28Februar還是01March? –

回答

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. 
+0

Thnaks,但我需要一個通用的解決方案,適用於二月和閏年和類似的東西 – Victor

相關問題