2016-03-29 2 views
3

Я хочу вычесть 2 даты в MS SQL Server.Вычесть две даты в Microsoft SQL Server

Пример:

Current date  Last used date 
'2016-03-30'  '2015-02-03' 

Текущая дата относится к сегодняшней дате, «Последняя использованному» является мерой.

Как написать запрос в SQL Server?

У меня есть это, но не работает (он говорит «типа Операнд данные некорректны для вычтите оператора»)

select 
    CONVERT(DATE, GETDATE()) - CONVERT(DATE, LastUsedDate) 
from 
    databasename 

ответ

0

Нормальная функция для использования является datediff():

select datediff(day, cast('2016-02-03' as date), cast('2016-03-30' as date)) 

Вы можете вычесть datetime значения, но не даты. Увы.

+0

Поэтому в основном я использовал этот запрос: выберите DateDiff (day, cast (GETDATE() в качестве даты), cast ([Lastusedate] as date) from databasename) – Shivang

2

Здесь вам не нужно вводить GETDATE() на сегодняшний день, так как это уже тип данных datetime. Таким образом, ваш запрос будет выглядеть следующим образом

SELECT DATEDIFF(day,CAST(LastUsedDate as date),GETDATE()) AS DifferneceDays 
FROM TableName 
3
SELECT  DATEDIFF(day,'2014-06-05','2014-08-05')  AS DiffDate 

Выход DiffDate 61

Больше практики смотрите ниже W3 школы:

http://www.w3schools.com/sql/func_datediff.asp

+0

Пожалуйста, отметьте как ответ, если эта помощь поможет вам получить ваши результаты! благодаря –