如何在mysql中比较from和to时间字段之间的时间?
我有一个简单的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
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