Mar*_*iff 0 sql t-sql sql-server sql-server-2005
我正在尝试编写一个查询,以查看工程师是否在约定的时间段内访问了他的工作.
表格截图http://img24.imageshack.us/img24/1156/capturebcn.jpg
这是我目前的查询:
SELECT
v.[VISITDATE],
CONVERT(VARCHAR, v.[STARTTIME], 105) AS 'Startdate',
CONVERT(VARCHAR, v.[STARTTIME], 108) AS 'StartTime',
CONVERT(VARCHAR, v.[bookeddate], 105) AS 'BookedDate',
CONVERT(VARCHAR, t.[starttime], 108) AS 'TimeSlotStart',
CONVERT(VARCHAR, t.[endtime], 108) AS 'TimeSlotEnd',
v.[Status]
FROM
[tbl_repair_visit] v
INNER JOIN [ltbl_TimeSlots] t ON v.timeslot = t.[Slot]
Run Code Online (Sandbox Code Playgroud)
该'StartDate'和'StartTime'是工程师去的日期和时间.
'BookedDate'是他应该去的日期,'TimeSlotStart'并'TimeSlotEnd'定义了他应该已经开始工作的时间跨度.所以我需要一个True/False值的列来说明他是否进入了正确的时间.
SELECT
CASE
WHEN StartDate = BookedDate AND StartTime BETWEEN TimeSlotStart and TimeSlotEnd
THEN 'True'
ELSE 'False'
END
FROM
...
Run Code Online (Sandbox Code Playgroud)