首页 > 解决方案 > MYSQL-显示聘用年数

问题描述

问题是:

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

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

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 服务器版本相对应的手册,以在第 5 行的 ')、hire_date、CURDATE()) AS "DATE" FROM activity6.employee' 附近使用正确的语法

这是我创建的表,必须用于上面的代码。---- 在此处输入图像描述

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

标签: mysqlsqldatabasedatetime

解决方案


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`;

推荐阅读