查找两名员工之间的雇用日期差异

时间:2013-01-26 14:54:51

标签: sql

我有一个员工表,其中的字段为:

first_name, last_name, hire_date, salary, department_id, department_name,等等。

我打算在EMPLOYEE1 and EMPLOYEE2,然后EMPLOYEE2 and EMPLOYEE3之间找到雇用日期差异,等等。

我必须在sql中编写一个查询来显示员工的第一个名字和雇用日期差异

3 个答案:

答案 0 :(得分:1)

我们可以使用DATEDIFF来计算日期差异。 e.g

SELECT DATEDIFF(SELECT DATE_ADD(start_date,INTERVAL 1 DAY),end_date);

希望它会帮助你

还有使用to_days功能的方法。 click here了解更多详情

答案 1 :(得分:1)

由于您还没有提到您正在使用的RDBMS,我将从SQL-Server开始:

WITH x 
     AS (SELECT first_name, 
                last_name, 
                hire_date, 
                salary, 
                department_id, 
                department_name, 
                hireNum=Row_number() 
                          OVER( 
                            ORDER BY hire_date) 
         FROM   dbo.employee) 
SELECT DiffDays=Datediff(day, x.hire_date, x2.hire_date),
       first_name, 
       last_name, 
       hire_date, 
       salary, 
       department_id, 
       department_name 
FROM   x 
       INNER JOIN x x2 
               ON x.hirenum = x2.hirenum + 1 

答案 2 :(得分:1)

要查找Microsoft SQL 2012中使用日期(替换日期,年份,小时等)的日期之间的差异:

Select datediff(day, HireDate, EndDate) 
From Employee1