mysql - SELECT * 特定年龄的用户

标签 mysql sql

users 表中,我有一个名为 dob 的字段,它以这种格式存储用户的出生日期:

1959-04-02

无论如何,我想选择所有 18 岁和 19 岁的用户。这是我的查询:

SELECT *
FROM `users`
WHERE dob BETWEEN '1993-10-30' AND '1994-10-30'

但它似乎只选择了大部分 18 岁的人和一些(但不是全部)19 岁的人。我在数据库中有一堆测试用户,18 岁和 19 岁的人数相等。然而,这个查询产生了大约 90% 的 18 岁和大约 10% 的 19 岁。为什么?

最佳答案

18 到 19 岁之间的人包括一系列出生日期超过 2 年的人。您的查询仅涵盖 1 年。考虑修改您的逻辑。

关于mysql - SELECT * 特定年龄的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13147352/

相关文章:

sql - 使用 T-SQL 聚合仅相邻的记录

c# - npgsql 字符串到数字

由于 "authentication protocol refused",MySQL ODBC 链接失败

mysql - 闲逛网站的数据库设计

MySQL-通过匹配引用从多个表中获取数据

sql - 为什么调用函数比直接执行函数代码要花更多的时间

mysql - 计算日期范围内的天数,同时排除重叠天数

java - 通过数据库或算法比较不同日期的两个对象

sql - 如果我将 NUMERIC 的列定义太宽泛,是否会牺牲磁盘空间?

MySQL GROUP 除非值等于 0