SQL查询来限制结果昨天和一个指定的8小时内
问题描述:
进行了广泛搜索通过这个网站(及其他),试图缩小来实现的SQL查询将返回一组的考勤数据结果的最佳方式昨天在8小时的班次窗口内。挑战之处在于,这是在专有(DG-LOGIK)数据可视化工具中编写的,该工具使用JDBC连接器连接SQL数据库,因此某些标准日期时间函数无法识别。SQL查询来限制结果昨天和一个指定的8小时内
,我已经成功地得到了工作的查询是:
SELECT MAX(TimeOfSample) as TimeOfSample, SUM(SampleValue) as SampleValue FROM {trend_log}
WHERE TimeOfSample >= GETDATE()-1 AND (DATEPART(HOUR,TimeOfSample)>=07 AND DATEPART(HOUR,TimeOfSample)<=15)
GROUP BY
DATEPART(YEAR, TimeOfSample),
DATEPART(MONTH, TimeOfSample),
DATEPART(DAY, TimeOfSample),
DATEPART(HOUR,TimeOfSample),
(DATEPART(MINUTE,TImeOfSample)/15)
ORDER BY TimeOfSample
挑战:如果你是移位今天和昨天的成绩回报今天的时间内。我试图限制TimeOfSample = GETDATE()-1
,但我得到了相等比较的错误返回。我怎样才能限制这个查询只返回昨天?
答
我想这是你想要的where
条款:
WHERE TimeOfSample >= CAST(GETDATE()-1 as date) AND
TimeOfSample < CAST(GETDATE() as date) AND
(DATEPART(HOUR,TimeOfSample) >= 07 AND DATEPART(HOUR, TimeOfSample) <= 15)
你需要指定昨日的上限和下限。