小知识点,在mysql中,between语法值的边界值不是固定的
在比较纯数字时,例如
select * from table where age between '10' and '20';
是左右都包含的,等同于:
select * from table where age >= 10 and age <=20;
在比较日期时(timestamp)时,是包含左边边界,不包含右边边界的, 例如
select * from table where creation_time between '20200618' and '20200620';
这里查询出来的结果是20200618和20200619的数据,因为Mysql会自动将这种格式转换为2020-06-18 00:00:00的格式,所以右边界会转换为2020-06-20 00:00:00,然后<=2020-06-20 00:00:00,自然就查不到6月20号当日的数据了。
本文深入解析MySQL中BETWEEN语法的使用细节,特别是在处理数字和日期类型数据时的区别。指出在数字比较中,BETWEEN是左右闭合区间;而在日期比较中,左闭右开,导致实际查询结果可能不包括右边界值。这对于正确理解和应用BETWEEN语法至关重要。

1065

被折叠的 条评论
为什么被折叠?



