在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);