出差表hhr_wf_org_per_travel有业务主键字段hhr_business_key,员工号hhr_empid, 出差行程表hhr_wf_org_per_travel_trip中也有相同的业务主键hhr_business_key,员工号hhr_empid,有开始时间(hhr_trip_startDate)和结束时间(hhr_trip_endDate),但hhr_wf_org_per_travel表中的一条数据对应hhr_wf_org_per_travel_trip表中多条行程数据 请帮我设计一段程序或sql正确计算出这个人这一条出差信息的出差天数
时间: 2023-07-22 08:22:28 浏览: 275
假设需要计算的员工号为empid,业务主键为business_key,可以使用以下SQL语句来计算该员工的出差天数:
```
SELECT DATEDIFF(day, MIN(hhr_trip_startDate), MAX(hhr_trip_endDate)) + 1 AS travel_days
FROM hhr_wf_org_per_travel_trip
WHERE hhr_empid = empid AND hhr_business_key = business_key
```
这条SQL语句将行程表中该员工该业务主键对应的行程的最早开始时间和最晚结束时间作为参数,计算出出差天数。需要注意的是,DATEDIFF函数计算的是两个日期之间相差的天数,而不是两个时间之间相差的小时数,因此需要加上1,才能得到实际的出差天数。
相关问题
出差行程表hhr_wf_org_per_travel_trip有开始时间(hhr_trip_startDate)和结束时间(hhr_trip_endDate),存在一个人有多条出差行程,请帮我设计一段程序或sql正确计算出出差天数
可以使用DATEDIFF函数来计算两个日期之间的天数。你可以使用以下SQL语句计算出差天数:
```sql
SELECT DATEDIFF(day, hhr_trip_startDate, hhr_trip_endDate) as travel_days
FROM hhr_wf_org_per_travel_trip
```
这将返回一个名为“travel_days”的列,其中包含每个出差行程的出差天数。
阅读全文