我有一个员工表,其中的字段为:
first_name, last_name, hire_date, salary, department_id, department_name
,等等。
我打算在EMPLOYEE1 and EMPLOYEE2
,然后EMPLOYEE2 and EMPLOYEE3
之间找到雇用日期差异,等等。
我必须在sql中编写一个查询来显示员工的第一个名字和雇用日期差异
答案 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