如何在mysql中的时间字段之间比较时间?

时间:2018-09-17 10:09:41

标签: mysql time comparison between

我有一个简单的mysql表,其中包含2个时间字段,即from和to。

我有2条记录,即:

  from   |    to 
07:00:00 | 17:59:59 
18:00:00 | 06:59:59

如果我执行以下查询:

SELECT * FROM prices WHERE '11:06' BETWEEN pric_from AND pric_to LIMIT 1

上面的查询返回正确的记录。

但是如果我运行以下查询:

SELECT * FROM prices WHERE '18:30' BETWEEN pric_from AND pric_to LIMIT 1

它不返回任何内容,应该返回第二条记录。

有人可以帮助我吗?

谢谢。

3 个答案:

答案 0 :(得分:0)

在之间使用时,您需要先指定范围,例如先从小到大,然后再从大

SELECT * FROM prices WHERE '18:30' BETWEEN  pric_to AND pric_from LIMIT 1

答案 1 :(得分:0)

@ fa06提到

BETWEEN [value] and [larger value]

我认为您打算使用DateTime值而不只是日期。那么您的“实现价值”将是第二天,从而变得更大,然后是“实现价值”。

答案 2 :(得分:0)

我认为我需要其中的另一条记录,并稍作改动,所以最后我最终像这样:

来自|至 07:00:00 | 17:59:59 18:00:00 | 11:59:59 00:00:00 | 06:59:59

这成功了。

谢谢。