2015-03-15 1 views
0

Можно ли использовать DATEPART в DATEDIFFВозможно ли использовать datepart в датах?

SELECT datediff (YEAR,2015 ,(datepart(YEAR,Person.DateOfBirth))) AS Exp from Person 

пожалуйста, помогите мне

+0

'DateDiff' ожидает DateDiff (год, startingdatetime, enddatetime), и вы только указать' 2015' как startdatetime, которое не является действительным DateTime –

+0

я хотел бы использовать DATEPART в DATEDIFF – husskar

+0

Что фактическая потребность здесь ? –

ответ

0

Аргументов для DateDiff должен быть даты, например:

datediff(year, '20150101', Person.DateOfBirth) 

При использовании года, пожалуйста, помните, что отслеживает изменение года, поэтому оно не подходит для расчета возраста, например

select datediff(year, '20150101', '20150201') 

Возвращает 0, но

select datediff(year, '20141231', '20150201') 

возвращает 1.

+0

Я хотел бы использовать datepart в датированном номере – husskar

+0

Если вы принимаете дату, то это всего лишь 2 целых числа. вы должны использовать для этого только минус. –

+0

Что такое решение – husskar

0

да, но образование, как это ..

datediff(result In(Year/Month/Day),toDate,Fromdate) 

'2015' в DateDiff является «2015-01- 01 '

попытка: select CAST('2015' as date)

SELECT datediff(YEAR,'2015',Person.DateOfBirth) AS Exp from Person--result in year 
SELECT datediff(Month,'2015',Person.DateOfBirth) AS Exp from Person--result in month 
SELECT datediff(Day,'2015',Person.DateOfBirth) AS Exp from Person--result in day 
Смежные вопросы