mysql - 为什么 BETWEEN 在此 MySQL 查询中不起作用?

标签 mysql

查询 1 有效但查询 2 无效:

查询#1:

SELECT * FROM `users` WHERE users.dob <= '1994-1-14' AND users.dob >= '1993-1-14' LIMIT 10

查询#2:

SELECT * FROM `users` WHERE users.dob BETWEEN '1994-1-14' AND '1993-1-14' LIMIT 10

第二个应该能够做与第一个相同的事情,但我不明白为什么它不起作用。

users 表中的 dob(出生日期)字段是一个类型为 date 的字段,其记录如下所示:

1988-11-08  
1967-11-14  
1991-03-09      
1958-03-08  
1967-06-30  
1988-10-19   
1986-01-23  
1965-09-20

年 - 月 - 日

无论是查询#1 还是#2,我都试图找回所有年龄在 18 到 19 岁之间的用户,因为 1994-1-14 正好是从今天起 18 年,并且1993-1-14 从今天起 19 年。那么有没有办法让 between 查询起作用?

不工作是指在工作查询执行时它不从数据库返回任何记录。

此外,between 查询是否更高效,或者性能差异可以忽略不计?

最佳答案

回答第一部分:“expr BETWEEN AND max”。尝试在第二个查询中切换这两个日期。

关于mysql - 为什么 BETWEEN 在此 MySQL 查询中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8873982/

相关文章:

mysql - rs.getMetaData().getColumnName(i) 与 mysql 上的别名列

php - Jquery循环遍历php数组,点击API并将结果推送到mysql

mysql - MySQL 的奇怪问题,结果意外

c# - 无法以编程方式连接到 Mysql

php - 试图获取非对象 CodeIgniter 框架的属性

mysql - #1273 - 未知排序规则 : 'utf8mb4_unicode_ci' cPanel

mysql where 条件

mysql - 连接 MySQL 和 Crystal Reports v10

mysql - 创建了 <timestamp>_add_devise_to_users.rb 而不是 <timestamp>_devise_create_users.rb

mysql - 如何根据返回相同数据的多个列进行 UPDATE 或 INSERT,而无需访问唯一 ID