MS SQL 查询上下班时间

MS SQL query on Punch time

我正在尝试根据班次开始时间(日期时间格式)从 2 个数据库表 (MS SQL DB) 中检索信息。我想要那些日期范围和特定时间的记录,但查询似乎不起作用 我写的查询是:

select p.fullnm 'Fullname',
      t.startdtm 'Start Date/Time'
FROM TIMESHEET t
      join PERSON p on p.personid = t.employeeid
WHERE t.startdtm between '2016-01-01' and '2016-12-05'
AND datepart(hh, startdtm) between 6 and 8
AND datepart(mi, startdtm) between 00 and 15

我想要的是:从 1 月 1 日到 12 月 5 日早上 6 点到 7:15 之间工作的所有员工的列表。任何 help/suggestion 将不胜感激。

是这样的吗?

WHERE t.startdtm between '2016-01-01' and '2016-12-05'
  AND cast(t.startdtm as time) between '06:00' and '07:15'