当前位置: 首页 > 面试题库 >

MySQL的“ between”子句不包括在内?

史高阳
2023-03-14
问题内容

如果我运行带有between子句的查询,它似乎排除了结束值。
例如:

select * from person where dob between '2011-01-01' and '2011-01-31'

dob从‘2011-01-01’到‘2011-01-30’的所有结果;跳过dob“ 2011-01-31”
所在的记录。谁能解释这个查询的行为方式,以及如何修改它以包含dob“ 2011-01-31”
所在的记录?(由于用户选择了结束日期,因此未在结束日期前加上1。)


问题答案:

该字段dob可能具有时间成分。

截断它:

select * from person 
where CAST(dob AS DATE) between '2011-01-01' and '2011-01-31'


 类似资料:
  • 主要内容:Oracle BETWEEN运算符简介,Oracle BETWEEN示例在本教程中将学习如何使用Oracle 运算符来选择值在一个范围内的行数据。 Oracle BETWEEN运算符简介 运算符允许指定要测试的范围。当使用运算符为SELECT语句返回的行形成搜索条件时,只返回其值在指定范围内的行。 以下说明运算符的语法: 在上面的语法中, low 和high - 和指定要测试的范围的下限值和上限值。和值可以是文字或表达式。 expression - 是和定义的范围内测

  • 本文向大家介绍MySQL中BETWEEN子句的用法详解,包括了MySQL中BETWEEN子句的用法详解的使用技巧和注意事项,需要的朋友参考一下 可以使用IN子句来代替相结合的“大于等于和小于等于”的条件。 要了解BETWEEN 子句考虑的EMPLOYEE_TBL表有以下记录: 现在,假设根据上表想获取记录条件daily_typing_pages超过170,等于和小于300。这可以使用如下条件>=和

  • 问题内容: 使用BETWEEN子句或使用<= AND> =比较之间在性能上有区别吗? 即这两个查询: …和 在此示例中,year列是带有索引的VARCHAR2(4)。 问题答案: 这两个示例查询之间没有性能差异,因为这只是表示 包含 范围比较的一种简便方法。Oracle解析条件时,它将自动扩展为单独的比较子句: 前任。 …将自动变为:

  • 问题内容: 考虑以下两个表: 表A中的每条记录都精确映射到表B中的1条记录。这意味着表B没有重叠的时间段。表A中的许多记录可以映射到表B中的同一记录。 我需要一个返回所有A.id,B.id对的查询。就像是: 我正在使用MySQL,但无法优化此查询。表A中有约980条记录,表B中有130.000条记录,这是永远的事。我知道必须执行980个查询,但是在功能强大的计算机上花费超过15分钟的时间却很奇怪。

  • 我有一个查询,我用它从数据库中提取数据,但我发现它错过了第一天和最后一天。在本例中,它跳过了将“scadenze”设置为“01-05-2021”的记录,而遗漏了将“scadenze”设置为“31-05-2021”的记录。这几天我怎么也能融入? 这是我使用的查询: 这个查询“有效”,但它删除了第一天和最后一天。我怎样才能包括他们? 谢谢

  • 问题内容: 我们得到错误-“ where子句不明确的列’CategoryID’”。 告诉我请怎么会好? 问题答案: 您得到的错误告诉您子句中的列是不明确的,这意味着系统存在标识适当列的问题,因为存在多个列。 为了解决此问题,请使用别名指定要用于子句的列: 我还更改了查询以获取相同的结果,但我没有使用+子句+子查询的组合,而是使用了子句。使用此查询,您只需定义一次所需的内容,它将自动获取每个子类别。