【问题标题】:Unable to run this MySQL query无法运行此 MySQL 查询
【发布时间】:2020-05-18 09:51:53
【问题描述】:
SELECT MIN(DATE) as START_DATE,
       MAX(DATE) as END_DATE, 
       datediff(day, START_DATE, END_DATE) AS DURATION
FROM CUSTOMER;

我在执行上述查询时遇到此错误。有人可以帮我解决这个问题。我正在尝试获取它们之间的开始日期、结束日期和持续时间。

错误代码:1582。调用本机函数“DATEDIFF”时的参数计数不正确

【问题讨论】:

  • 你检查过the manual吗?
  • 在 MySQL DATEDIFF() 函数中有 2 个参数。
  • 该查询应该返回什么样的差异?

标签: mysql sql database qsqlquery


【解决方案1】:
SELECT MIN(DATE) as START_DATE,MAX(DATE) as END_DATE, 
datediff(MIN(DATE), MAX(DATE)) AS DURATION 
FROM CUSTOMER;

【讨论】:

    【解决方案2】:

    您的代码中有多个错误:

    • 您正在使用带有三个参数的datediff()。那是 SQL Server 函数,而不是 MySQL 函数。
    • 其次,您使用列别名作为函数的参数。这是不允许的。

    此外,您需要记住,datediff() 的参数以 MySQL 中的 较大 值开头,而不是较小的值。所以:

    select min(date) as start_date, max(date) as end_date,
           datediff(max(date), min(date)) as duration
    from customer;
    

    【讨论】:

      猜你喜欢
      • 2020-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-11
      相关资源
      最近更新 更多