我的sql知识非常基础,我会很感激一些建议。我有一个表格,如:
日期,时间,读数,......评论1,评论2
我想要做的是过滤表格,以便在comments1等于字符串时显示结果,我可以实现。棘手的一点是我想在初始查询返回/识别的时间之后的5到7小时之间找到读数(comments1 = string“)。有没有办法做到这一点,将会是什么最好的策略?
谢谢。
答案 0 :(得分:1)
您应该将日期和时间存储在一个列中,否则难以选择午夜边界。我的示例假设您的“日期”列是datetime
类型,它也存储时间戳。
我相信你正在寻找的东西是这样的:
WITH CommentTime AS (
SELECT TOP 1 date
FROM tblRecords
WHERE comments1 = 'The comment to find'
)
SELECT *
FROM tblRecords
WHERE date >= DATEADD(hour, 5, (SELECT date FROM CommentTime))
AND date < DATEADD(hour, 7, (SELECT date FROM CommentTime))
答案 1 :(得分:0)
新答案: (重做Dans回答代替使用变量)
DECLARE @CommentTime AS DateTime = (SELECT TOP 1 [date] FROM tblRecords WHERE comments1 = 'string')
SELECT * FROM tblRecords
WHERE [date] >= DATEADD(HOUR, 5, @CommentTime)
AND [date] < DATEADD(HOUR, 7, @CommentTime)