2015-12-02 7 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? (и эта проблема не потребует PL/SQL в Oracle в любом случае) –

+0

Почему вы обновляете значение в самой таблице? без контрольной точки, вы никогда не знаете, какая дата была использована для вычисления значения. Или вам придется запускать это обновление каждый день. В этом случае просто используйте представление. – Rabbit

ответ

0

Используйте DATEDIFF и функцию LEAD для сравнения со следующей строкой.

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

Смежные вопросы