2013-04-08 29 views
0

У меня возникли проблемы с получением разницы во времени с function--Разница во времени в SQL

"SELECT DATEDIFF(day,'2008-06-05','2008-08-05') " 

выше запрос возвращает сообщение об ошибке, говоря

"Incorrect parameter count in the call to native function 'DATEDIFF'" 

Я скопировал этот код непосредственно из W3Schools. (Я хочу получить время между двумя параметрами, но это тоже дает ту же ошибку msg).

+0

w3schools не имеет никакого отношения к w3c! Это одно мнение и не должно восприниматься как факт. –

ответ

1

Если вы используете MySQL, есть 2 аргумента.

SELECT DATEDIFF('2007-12-31 23:59:59','2007-12-30'); 

если вы используете MSSQL есть 3

SELECT DATEDIFF(year, '2005-12-31 23:59:59.9999999' 
, '2006-01-01 00:00:00.0000000'); 

MSSQL http://msdn.microsoft.com/pl-pl/library/ms189794.aspx

DATEDIFF (datepart , startdate , enddate) 

Возвращает число (целое число) указанных границ DATEPART скрещенных между указанным StartDate и EndDate ,

MySQL https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_datediff

DATEDIFF() возвращает expr1 - expr2 выражается как значение в днях от одного дня до другого. expr1 и expr2 - это выражения даты или даты и времени. В расчетах используются только части даты.

+0

Итак, как я могу вычесть два аргумента «datetime», чтобы получить разницу во времени в mysql. –

+0

Просто сделайте это - 'SELECT FIRSTDATE - SECONDDATE FROM SOME_TABLE' Вы должны попробовать, потому что результаты будут информативными - особенно если вы внимательно посмотрите на результат - его тип данных и то, что значение может означать. –

+0

Также попробуйте выполнить этот «ВЫБЕРИТЕ СОБЫТИЕ - 1 FROM SOME_TABLE» и «SELECT SOMEDATE - 0.5 FROM SOMETABLE». Это должно показать вам, как работают даты в вашей базе данных. –

1

DATEDIFF принимает два параметра. попробуйте использовать его как

SELECT DATEDIFF(day,'2008-08-05') 
+0

Также не работает. –

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