我需要在时间(非时间戳)间隔中选择值(例如+/- 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()。有什么方法可以优化它吗?
答案 0 :(得分:1)
这实际上不会为每一行执行该函数,因为您正在对CURTIME()执行该函数。它将计算一次并将其用于所有行,就好像你已经把确切的时间放在自己身上一样。
如果列上的函数操作(例如时间),您将只有计算每一行的问题。所以基本上你已经正确地做到了这一点。