MySQL选择:WHERE(现在时间)= BETWEEN tablevalue和tablevalue

时间:2011-01-21 11:11:16

标签: mysql select time where-clause

我正在寻找一种方法来选择当前时间在行中两个设定值之间的行。我已经设置了一个包含3列的表,其中2列包含时间戳(HH:MM:SS),另一列包含字符串。有没有办法让我得到与当前时间相对应的字符串? 用更抽象的方式来表达:

SELECT String FROM TableName WHERE(当前时间)BETWEEN(下限时间值)AND(上限时间值);

alt text

所以基本上,根据当前时间,我的脚本应该输出正确的字符串。

我该如何解决这个问题? 谢谢!

4 个答案:

答案 0 :(得分:5)

MySQL中,时间戳是一个令人困惑的词。

如果从lowerlimitupperlimit的{​​{1}}和TIME列为00:00:00,则

23:59:59

这将正确处理午夜过渡。

答案 1 :(得分:4)

SELECT string_col
FROM your_table
WHERE CURTIME() BETWEEN lower_limit_col AND upper_limit_col

答案 2 :(得分:2)

你做的就是这样:

SELECT String FROM TableName WHERE CURTIME() BETWEEN (Lower Limit Time Value) AND (Upper Limit Time Value);

答案 3 :(得分:2)

两列的类型应该是时间(而不是时间戳)。然后,答案在你的问题中:

select string from tablename where curtime() between lowerlimit and upperlimit

请确保夜晚不会从22:00:00到06:00:00,或者不起作用。但是你可能会为may引入两个间隔:一个从22:00:00到24:00:00,另一个从00:00:00到06:00:00。