根据查询结果从表中重新选择

时间:2014-05-29 17:10:59

标签: mysql sql select

我的sql知识非常基础,我会很感激一些建议。我有一个表格,如:

日期,时间,读数,......评论1,评论2

我想要做的是过滤表格,以便在comments1等于字符串时显示结果,我可以实现。棘手的一点是我想在初始查询返回/识别的时间之后的5到7小时之间找到读数(comments1 = string“)。有没有办法做到这一点,将会是什么最好的策略?

谢谢。

2 个答案:

答案 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)