sql带条件选择查询

pdtvr36n  于 2021-06-20  发布在  Mysql
关注(0)|答案(3)|浏览(416)

我使用sql查询从我工作中的应用程序收集有关日常工作的信息。我对sql不是很熟悉,但我必须编写一个查询,只从表中选择处于精确状态超过精确时间的行。我的意思是我有列jobstatus(string)和列starttime(datetime),从中我只需要选择这些jobstatus为'waiting'的行,并在这种状态下保持30分钟以上。很重要的一点是,这些行每一分钟都可以改变它的状态,这就是为什么我只需要这些jobstatus在30分钟内没有改变的行。我希望我的问题很清楚。
这只能用sql来实现吗?如果可以的话,您有什么建议吗。提前谢谢!

djp7away

djp7away1#

SELECT JobStatus, StartTime FROM Your_Table 
WHERE JobStatus = "Waiting" 
AND 30 <= TIMESTAMPDIFF(MINUTE, StartTime, NOW());

这可能有助于您获得等待状态超过30分钟的工作。

ct3nt3jp

ct3nt3jp2#

此检索数据的状态与starttime的等待时间比现在早-30分钟

SELECT
  *
FROM
  YOUR_TABLE T
WHERE
  T.JobStatus='waiting' 
  AND T.StartTime<DATE_ADD(now(), INTERVAL -30 MINUTE)
ie3xauqp

ie3xauqp3#

如果starttime表示更新jobstatus时的时间戳,则可以尝试以下操作:

SELECT JobStatus, StartTime FROM Your_Table WHERE StartTime = ?

您可以使用用于填充starttime列的相同函数来更改“?”。
我希望这会有帮助。祝你好运!

相关问题