timestampdiff() 参数错误

timestampdiff() parameters error

我在 sql fiddle 上使用 mysql 版本 5.6,我正在尝试使用 timestampdiff() 函数找出第一列中的最小值之间的差异table 命名任务中第二个中的最大值如下

select TimeStampDiff(month, , max(Task.End_Date), min(Task.Start_Date));

但是当我 运行 这段代码时,我得到以下错误:

您的 SQL 语法有误;查看与您的 MySQL 服务器版本相对应的手册,了解在第 1 行的 'months(max(End_Date)), months(min(Start_Date)))' 附近使用的正确语法

是不是timestampdiff() 不接受聚合函数作为参数?我该如何解决这个问题?

这是我的 complete fiddle

尝试:

mysql> DROP TABLE IF EXISTS `Task`;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> CREATE TABLE IF NOT EXISTS `Task` (
    ->   `ID` INT NOT  NULL,
    ->   `Pro_ID` INT NOT  NULL,
    ->   `Start_Date` DATE,
    ->   `End_Date` DATE,
    ->   `Description` VARCHAR(255),
    ->   PRIMARY KEY (`ID`)
    -> );
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO `Task` VALUES
    ->   (1, 1, '2017-01-01', '2017-02-01', "no-Description-yet"),
    ->   (2, 1, '2017-01-01', '2017-02-01', "no-Description-yet"),
    ->   (3, 1, '2017-01-01', '2017-06-01', "no-Description-yet"),
    ->   (4, 2, '2017-01-01', '2017-03-01', "no-Description-yet"),
    ->   (5, 3, '2017-01-01', '2017-02-01', "no-Description-yet"),
    ->   (6, 4, '2017-01-01', '2017-03-01', "no-Description-yet");
Query OK, 6 rows affected (0.02 sec)
Records: 6  Duplicates: 0  Warnings: 0

mysql> SELECT
    -> `Pro_ID`,
    -> TIMESTAMPDIFF(MONTH, MIN(`Start_Date`), MAX(`End_Date`)) `MONTH_DIFF`
    -> FROM `Task`
    -> GROUP BY `Pro_ID`;
+--------+------------+
| Pro_ID | MONTH_DIFF |
+--------+------------+
|      1 |          5 |
|      2 |          2 |
|      3 |          1 |
|      4 |          2 |
+--------+------------+
4 rows in set (0.00 sec)

例子db-fiddle.