我有一个数据类型为datetime的列,导入数据的方式始终是前一天到今天。其中日期时间在列时间的上午12点和列时间的第二天上午10点之间
表中没有存储历史数据 - 之前的数据在导入新数据之前被删除。
这就是说我想写一个where子句,其中我的ESTEndTime列在时间戳列的00:00:00和时间戳列的第二天的10:00:00之间。
我已经搜索,但找不到具体到我正在寻找什么。
目的是主要捕捉那些在夜间工作的人的最终时间。数据导出时,它始终导出为前一天至第二天,例如10月1日至10月2日。这将使我们能够看到过夜工作人员的最新注销时间。在我刚刚提到的例子中,数据将包括从10月1日00:00:00到10月2日23:59:59的所有内容。我们无法限制到特定时间。所以,当我希望实现的时候,使用这个例子将它限制在10月1日00:00:00到10月2日10:00:00之间的where子句中。问题是我不想使用那些实际的日期,因为我的日期总是在变化,所以我在这里寻求帮助。
代码,我有,但没有得到预期的结果
SELECT timestamp, emp_id, dept, ESTStartTime, ESTEndTime
,CONCAT(emp_id, '-', FORMAT(ESTStartTime, 'yyyy/MM/dd-HH:mm')) AS Index2Start
,CONCAT(emp_id, '-', FORMAT(ESTEndTime, 'yyyy/MM/dd-HH:mm')) AS Index3Stop
,CONCAT(emp_id, '-', FORMAT(ESTEndTime, 'yyyy/MM/dd')) AS Index3StopDay
FROM dbo.[test]
WHERE ESTEndTime BETWEEN DATEADD(DAY, DATEDIFF(DAY, 0, timestamp), 0) + '00:00'
AND DATEADD(DAY, DATEDIFF(DAY, 1, timestamp), 1) + '10:00'
ORDER BY ESTEndTime DESC
帖子你写到目前为止请代码。 –
“,其中我的日期时间列在日期时间列的00:00:00到日期时间列的第二天的10:00:00之间。这没有意义。 –
是的你是正确的,我的意思是'我的ESTEndTime列在00:00:00的时间戳列和10:00:00的时间戳列的那一天之间'。 – sly123