我使用SQL查询从我的工作中的应用程序收集有关日常工作的信息。
我对SQL不太熟悉,但是我不得不编写查询,该查询只从表中选择状态确切的行,而不是确切的时间。我的意思是,我有JobStatus(string)列和StartTime(datetime)列,我只能从中选择JobStatus正在“等待”的这些行,并在此状态下保持30分钟以上。重要的是要说行可以每隔一分钟更改其状态,这就是为什么我只需要JobStatus从30分钟起就不会更改的那些行的原因。我希望我的问题很清楚。
能否仅使用sql进行此操作,如果可以,则有任何建议。
提前致谢!
答案 0 :(得分:1)
SELECT JobStatus, StartTime FROM Your_Table
WHERE JobStatus = "Waiting"
AND 30 <= TIMESTAMPDIFF(MINUTE, StartTime, NOW());
这可以帮助您使作业处于等待状态30分钟以上。
答案 1 :(得分:0)
如果StartTime代表JobStatus更新后的时间戳,则可以尝试如下操作:
SELECT JobStatus, StartTime FROM Your_Table WHERE StartTime = ?
您会更改'?'通过与用于填充StartTime列相同的功能。
我希望这会有所帮助。祝你好运!
答案 2 :(得分:0)
此操作将检索状态为StartTime的数据,然后等待30分钟
SELECT
*
FROM
YOUR_TABLE T
WHERE
T.JobStatus='waiting'
AND T.StartTime<DATE_ADD(now(), INTERVAL -30 MINUTE)