我正在使用查询为我们的第3班人提取报告。
我刚刚注意到的问题是,当报告以0结果邮寄时,我现在已将其设置为第二天早上6点到5点59分。由于我的日期字段= GETDATE
,因此它没有看到前一天晚上(1800-2359)的结果。我想在-12小时内完成这项工作,但可以随时按下按钮查看结果。
因此,如果他们在班次结束前推动它,它将显示一些第一班次条目。我希望第二天早上只能在1800-0559之间运行,无论午夜之前还是午夜之后按下按钮。我希望这是有道理的。我甚至不确定在它达到2359之后是否会识别到00之后我已经将它内置到VB.net应用程序中,并且他们可以随时按下按钮以获得结果。这是为了管理层跟踪正在进行的工作,因为员工需要在发生问题时实时输入数据。
感谢您的帮助。希望我有足够的意义! :d
SELECT
Assignment, Datemodified, General,
IncNumber, NextSteps, PDCRStatus,
RootCause, Status, Summary,
Timings, UserID
FROM
Turnover
WHERE DATEPART(HOUR, datemodified) between 18 and 05
AND CONVERT(NVARCHAR(50),datemodified,103) = CONVERT(NVARCHAR(50),GETDATE(),103);
答案 0 :(得分:0)
我想当你检查一个特定的时间范围时,日期会随着时间而变化,即一天的1800小时到下一个的0500小时。 我看到您的查询仅检查时间,但不考虑日期。 我想如果你能一起检查日期和时间,它应该可以工作。 截至目前,我的机器上没有sql server,否则会帮助你进行示例查询。
干杯, 希望它有所帮助!
答案 1 :(得分:0)
我假设你想要从昨天18:00开始的所有数据。
SELECT
Assignment, Datemodified, General,
IncNumber, NextSteps, PDCRStatus,
RootCause, Status, Summary,
Timings, UserID
FROM
Turnover
WHERE datemodified >= dateadd(HH,-6,convert(datetime,convert(date,GETDATE())))
我使用getdate获取当前日期时间并提取当天。当它转换回日期时间我有00:00,所以我用dateadd减去6小时,因此选择昨天18:00。但是我不知道这应该在某些时间表现出来。它总是会去昨天18:00 ,这意味着当你在23:59开始时,你会看到29小时59分钟的间隔。在00:00开始时,你会看到6个小时。