2015-03-12 3 views
-1

Помогите с этим вопросом о Разнице между двумя датами.Дата Diff Between two Columns

Моя текущая таблица объединена с большим количеством столбцов, однако я хотел бы добавить еще один столбец, чтобы определить разницу дат.

Следует сопоставить два столбца внутри таблицы, и в новом добавленном столбце необходимо заполнить дату diff, однако не нужно учитывать часы, секунды, миллионы секунд. Запрос должен учитывать только разные изменения даты.

Колонны

- ServiceDt (2014/09/22) 
- ServiceToDt 
- SettleDt 
- ReceiveDt 
- AssessDt  (2014/10/01) 

- New Column (9 Days) 

New Column должна быть обновлена ​​с разницей между ServiceDt и AssessDt.

Дата разницы должна считаться 9 дней, так как произошло 9 разных дат времени.

Надеюсь, что любое из вышеизложенных имеет смысл. Я пробовал так много запросов и не могу дать вам хотя бы один пример, поскольку они не работали.

спасибо.

+1

'DATEDIFF (DAY, FromDate, ToDate)' –

+0

я бы не рекомендовал вам создать новый столбец для хранения разницу дней между двумя существующего столбца. Потому что, когда вам нужно, вы можете просто использовать запрос. – Sachin

+0

быть более пространственным. Вы хотите добавить столбец в отчет или в свою таблицу? –

ответ

1

Вы могли бы использовать: DATEDIFF(DAY, FromDate, ToDate)

SELECT 
    *, 
    NewCol = DATEDIFF(DAY, ServiceDt, AssessDt) 
FROM table 
0

использование высчитывает колонка

ALTER TABLE tbl 
ADD DATE_DIFFS AS DATEDIFF(DAY, ServiceDt , AssessDt) 
+0

Спасибо за все различные методы, как это сделать, я буду тестировать все разные запросы, однако первый ответ уже предоставил мне то, что мне было нужно. –

0

Вы должны, вероятно, не добавить вычисляемый столбец, данные уже есть. Вы можете создать представление. Это будет содержать ту же информацию.

CREATE VIEW v_yourview as 
SELECT 
    ServiceDt, 
ServiceToDt, 
SettleDt, 
ReceiveDt, 
AssessDt, 
DATEDIFF(DAY, ServiceDt, AssessDt) difference 
FROM yourtable 

Если вам нужна дополнительная колонка по соображениям производительности. Создайте расчетный столбец PERSISTED. При создании индексов это будет работать как обычный столбец.

ALTER TABLE yourtable 
ADD cDifference as DATEDIFF(DAY, ServiceDt, AssessDt) PERSISTED