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

如何在mysql中比较from和to时间字段之间的时间?,mysql,time,comparison,between,Mysql,Time,Comparison,Between,我有一个简单的mysql表,有两个时间字段,即from和to 我在其中有两项记录,即: 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

我有一个简单的mysql表,有两个时间字段,即from和to

我在其中有两项记录,即:

  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
上述查询正在返回正确的记录

但如果我运行以下查询:

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
它没有返回任何内容,因为它应该返回第二条记录

有人能帮我吗


谢谢。

对于使用between,您需要按照先小后大的顺序指定范围

SELECT * FROM prices WHERE '18:30' BETWEEN  pric_to AND pric_from LIMIT 1
@fa06提到

BETWEEN [value] and [larger value]

我想你的意思是使用日期时间值,而不仅仅是日期。然后第二天你的“to value”会更大,然后是你的“from value”。

我相信我需要另一条记录,并对另一条记录做了一些更改,所以最后我的结果是:

从|到 07:00:00 | 17:59:59 18:00:00 | 11:59:59 00:00:00 | 06:59:59

这就成功了


谢谢。

SQL是一个未排序的数据集。使用
LIMIT
而不使用
ORDER BY
是毫无意义的。。如果要使用LIMIT获取“第一条”记录(在组中),请始终使用
orderby
SQL是未排序的数据集。使用
LIMIT
而不使用
ORDER BY
是毫无意义的。。如果要使用LIMIT获取“第一条”记录(在组内),请始终使用
ORDER BY