2015-12-02 125 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