首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Mysql,选择年龄范围内的用户

Mysql,选择年龄范围内的用户
EN

Stack Overflow用户
提问于 2011-04-23 18:28:57
回答 4查看 1.5K关注 0票数 0

基本的查询问题,但似乎不能正确回答。我正在努力寻找11岁或12岁的用户。将道布存储为时间戳

"11年前“的时间戳是956485529

"12年前“的时间戳是924863129

查询:

代码语言:javascript
运行
复制
SELECT * FROM (`users`) WHERE `dob` < 956485529 AND `dob` > 924863129

似乎只返回11岁的用户,而不是12岁的用户。我做错了什么?

EN

回答 4

Stack Overflow用户

发布于 2011-04-23 21:20:34

我读到您可以更改您的道布类型。

好的,如果您将其更改为DATETIME (并修改该列中的值以将出生日期存储为DATETIME),您可以尝试这样做:

代码语言:javascript
运行
复制
select * FROM users  
WHERE (dob>DATE_SUB(NOW(),INTERVAL 13 YEAR)) 
  AND (dob<=DATE_SUB(NOW(),INTERVAL 11 YEAR));
票数 2
EN

Stack Overflow用户

发布于 2011-04-23 22:11:38

代码语言:javascript
运行
复制
SELECT * FROM (`users`) WHERE `dob` < 956485529 AND `dob` > 924863129

它只返回11岁的用户,因为:

代码语言:javascript
运行
复制
mysql> select FROM_UNIXTIME(924863129), CURRENT_TIMESTAMP();
+--------------------------+---------------------+
| FROM_UNIXTIME(924863129) | CURRENT_TIMESTAMP() |
+--------------------------+---------------------+
| 1999-04-23 18:25:29      | 2011-04-23 22:06:50 |
+--------------------------+---------------------+

mysql> select FROM_UNIXTIME(956485529), CURRENT_TIMESTAMP();
+--------------------------+---------------------+
| FROM_UNIXTIME(956485529) | CURRENT_TIMESTAMP() |
+--------------------------+---------------------+
| 2000-04-23 18:25:29      | 2011-04-23 22:07:19 |
+--------------------------+---------------------+

今天是2011-04-23!2011-04-23 - 1999-04-23 = 12!

所以你应该像这样写你的查询:

代码语言:javascript
运行
复制
SELECT * FROM (`users`) WHERE `dob` < 956485529 AND `dob` >= 924863129

希望这对你有所帮助!

票数 0
EN

Stack Overflow用户

发布于 2011-04-23 18:33:58

您必须像您所说的那样使用OR,因为道布列的不能同时具有两个不同的值。

代码语言:javascript
运行
复制
`dob` < 956485529 AND `dob` > 924863129

或者,您可以尝试将时间戳转换为年份:

代码语言:javascript
运行
复制
SELECT
  FROM_UNIXTIME(my_unix_timestamp_column, '%Y') AS year
FROM
  table_name
WHERE
  FROM_UNIXTIME(my_unix_timestamp_column, '%Y') = 2009;

并尝试这个(当然,调整您的查询)

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5763676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档