关于mysql:关于DATEDIFF()函数的问题,有关返回结果的月份数

The DATEDIFF() function problem regarding the result returning in months

我正在使用MySQl服务器。问题是每当我使用

1
SELECT DATEDIFF(year, '2017/08/25', '2011/08/25') AS DateDiff`;

声明一个错误,显示为

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DATEDIFF'.

当我试图以月或年为单位而不是以天为单位查找差异时,DATEDIFF()不能正常工作。

但是我是否使用SELECT DATEDIFF('2017/08/25', '2011/08/25') AS DateDiff;
它以天为单位返回值。


您将SQL Server语法用于DATEDIFF

1
DATEDIFF(datepart, startdate, enddate)

可以返回年,月,日等的差异。
在MySql中,DATEDIFF的语法不同:

1
DATEDIFF(date1, date2)

并以天为单位返回差值date1 - date2
您可以使用TIMESTAMPDIFF来返回以年,月,日等为单位的差datetime_expr2 - datetime_expr1作为整数:

1
TIMESTAMPDIFF(unit, datetime_expr1, datetime_expr2)

像这样:

1
SELECT TIMESTAMPDIFF(year, '2011/08/25', '2017/08/25') AS DateDiff;

结果:

1
6

Dateiff返回天,而不是年。对于近似值,将结果除以365.25。

或者,看看如何获??得两个不同日期之间的年差?如果您使用的是整数年或第二个答案中MySQL中日期之间的月差,以获取有关timestampdiff和小数月的建议,则将该技术应用于年份或将该技术除以12