2012-02-05 3 views
2

Я пытаюсь найти способ принять дату в таблице в SQL, проверить, является ли она старше значения в другом столбце и, возможно, вывести разницу.Вычисление и сравнение даты в SQL Server

Для примера:

КОЛА имеет стандартную дату SQL печать 2011-12-12 04: 10: 00,000 ColB имеет ряд в нем, такие как 10 Я хотел бы, чтобы иметь возможность сравнивать сегодняшние дата до даты в (ColA + значение в ColB)

Значения ColB находятся в днях, поэтому добавление 10 выше означает, что дата ColA + 10 будет: 2011-12-22 04: 10: 00.000.

Я пытаюсь выяснить, как сравнить сегодняшнюю дату с этой датой, чтобы узнать, сколько дней прошло с сегодняшнего дня. В этом случае (12-22-2011) это было бы 45 дней назад.

Надеюсь, это объяснение не слишком смущает.

ответ

3

Используйте DATEDIFF и DATEADD, чтобы управлять и сравнивать даты и даты SQL Server.

например

DATEADD(day, 10, ColA) 

и

IF DATEDIFF(day, DATEADD(day, 10, ColA), GETDATE()) > SomeNumberofDays 
+0

Есть ли способ, чтобы проверить это, не изменяя таблицу? Я хотел бы сделать что-то вроде: WHERE GETDATE()> (YAAR (ColA) AND MONTH (ColA) AND (DAY (ColA) + ColB). В основном, только возвращающие строки, которые являются более поздними, чем дата ColA + количество дней в ColB –

+0

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

+0

Спасибо за ваш ответ. Как только я посмотрел больше на две функции и протестировал их стало ясно, как они работают. Еще раз спасибо! –

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