2015-12-02 166 views
-3

我使用SQL Server 2012,在我的表中我有id,date,days列。PL/SQL減去兩個日期

date被格式化dd-mm-yyyy

我需要PL/SQL代碼來獲取今天的日期和發現日期欄之間的差異,並將其存儲在天塔

例子:

獲取今天的日期,並從表中找到存儲的日期的差異

id  date   days 
1  01-12-2015  1 
2  30-11-2015  2 

我需要PL/SQL代碼。

+2

Plsql MS SQL Server - 這是一個非常奇怪的組合... – jarlh

+2

SQL Server中沒有PL/SQL。你的意思是T-SQL? (並且這個問題在Oracle中不需要PL/SQL) –

+0

爲什麼你要更新表本身的值?沒有一個參照點,你永遠不知道哪個日期來計算的值。或者你將不得不每天運行此更新。在這種情況下,只需使用視圖。 – Rabbit

回答

0

使用DATEDIFFLEAD功能進行比較的下一行。

SELECT DATEDIFF(d,date,LEAD(date) OVER (ORDER BY id)) 
FROM yourtable 

爲了針對今天的日期比較

SELECT DATEDIFF(d,date,GETDATE()) 
FROM yourtable 
+0

需要從SQLSERVER獲取存儲日期和當前日期減去。 ---馬特,瑪麗 –

1

您可以使用DATEDIFF

SELECT DATEDIFF(day,'2015-06-05','2015-08-05') AS DiffDate 

對於你的情況應該是:

INSERT INTO table_name (days) 
SELECT DATEDIFF(day,table_name.date,GETDATE()); 

SQL Server Date Functions