MySQL在时间间隔内选择

时间:2015-03-28 23:05:23

标签: mysql

我需要在时间(非时间戳)间隔中选择值(例如+/- 30分钟)。 我的示例数据库由2个cols组成:text(VARCHAR(100))和time(TIME)。

现在我正在使用这样的语法:

SELECT * FROM table WHERE time BETWEEN SUBTIME(CURTIME(), "0:30:00") AND ADDTIME(CURTIME(), "0:30:00")

但我认为它不是最佳的,因为在每一行上它执行CURTIME(),SUBTIME(),ADDTIME()。有什么方法可以优化它吗?

1 个答案:

答案 0 :(得分:1)

这实际上不会为每一行执行该函数,因为您正在对CURTIME()执行该函数。它将计算一次并将其用于所有行,就好像你已经把确切的时间放在自己身上一样。

如果列上的函数操作(例如时间),您将只有计算每一行的问题。所以基本上你已经正确地做到了这一点。