MYSQL-显示受聘年限

标签 mysql sql database datetime

问题是:

Display the number of years the employee is hired as NUM_OF_YEARS and sort the list by lastname.

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

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) 并使用上面相同的代码运行它时,这是我得到的错误:

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '), hire_date, CURDATE()) AS "DATE" FROM activity6.employee' at line 5

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

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

最佳答案

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

关于MYSQL-显示受聘年限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54370371/

相关文章:

mysql - 是否可以获取 mysql 数据库中的列长度?

java循环执行多个sql查询

SQLITE:如果它们共享一列,则将行合并为单行

database - 具有最快实时复制的内存数据库解决方案

mysql - 庞大的 MySQL 数据库——该做什么和不该做什么?

php - 在MYSQL中放置数组的值

c# - 如何使用自动增量键和 SqlDataAdapter 来添加数据库新行

mysql - 比较 Drupal 中的 2 个字段

php - 对 Laravel 的简单 Ajax 请求不起作用

java - 使用 JPA 将对象上传到数据库时出现 NULL 指针异常