MYSQL-Display雇用年限

时间:2019-01-25 17:43:43

标签: mysql sql database datetime

问题是:

  

显示员工被雇用的年数NUM_OF_YEARS,并按姓氏对列表进行排序。

这是另一台PC上使用的代码,它运行良好。

SELECT  `lastname` AS "LASTNAME", 
DATE_FORMAT(`hire_date`,'%d-%M-%Y') AS "HIRED DATE",
TRUNCATE(DATEDIFF(CURDATE(),CONVERT(`hire_date`,DATETIME))  / 365 ,0) AS "NO_OF_YEARS",
DATEDIFF(YEAR(), `hire_date`, CURDATE()) AS "DATE"
FROM `activity6`.`employee`;

现在,当我尝试使用Xampp(3.2.2)并使用上面的相同代码运行它时,这是我得到的错误:

  

您的SQL语法有错误;检查手册   对应于您的MariaDB服务器版本,以使用正确的语法   ')附近,hire_date,CURDATE())为“ DATE”       来自第6行的activity6.employee'

这是我创建的表,必须用于上面的代码。 enter image description here

因此,同时我需要创建另一列以显示这些员工到该日期(2019年)的年限。 我真的不确定要使用什么正确的查询。

1 个答案:

答案 0 :(得分:0)

DATEDIFF函数中,您使用了3个参数,而该函数需要2个参数,因此我删除了YEAR()参数:

SELECT  `lastname` AS "LASTNAME", 
        DATE_FORMAT(`hire_date`,'%d-%M-%Y') AS "HIRED DATE",
        TRUNCATE(DATEDIFF(CURDATE(),CONVERT(`hire_date`,DATETIME))  / 365 ,0) AS "NO_OF_YEARS",
        DATEDIFF( `hire_date`, CURDATE()) AS "DATE"
FROM `activity6`.`employee`;