在MySQL中,我試圖從表格中選擇具有lock_dt
10個小時以上的行。我怎樣才能正確地寫這個sql語句?MYSQL - 如何獲得時差?
select phone from table where ((now() - lock_dt) < 10 hours)
在MySQL中,我試圖從表格中選擇具有lock_dt
10個小時以上的行。我怎樣才能正確地寫這個sql語句?MYSQL - 如何獲得時差?
select phone from table where ((now() - lock_dt) < 10 hours)
SELECT phone
FROM table
WHERE lock_dt > NOW() - INTERVAL 10 HOUR
使用的時間間隔是非常方便的。此外,我嘗試隔離列,以便可以使用最終索引(有時,即使在lock_dt上有索引,RDBMS也不知道如何使用NOW() - lock_dt的索引)。
此外,您的問題的描述與您的查詢相矛盾。 NOW() - lock_dt < 10 hours
表示間隔時間爲以下比10小時。這就是我的查詢所做的。如果你想更多 10小時以上,你必須更改> <。
SELECT phone FROM table WHERE lock_dt < DATE_SUB(now(), interval 10 hour);