首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >mysql在日期之间获取结果

mysql在日期之间获取结果
EN

Stack Overflow用户
提问于 2011-10-06 14:07:49
回答 6查看 82关注 0票数 0

我在mytable中有以下行

代码语言:javascript
运行
复制
date_start
-----------
2011-09-20 13:00:00
2011-10-01 13:14:00
2011-10-09 13:16:00
2011-09-27 15:00:00
2011-09-30 14:04:00
2011-10-03 14:00:00

我有这样的疑问:

代码语言:javascript
运行
复制
SELECT date_start
FROM `mytable`
WHERE date_start >= "2011-09-19"
AND date_start <= "2011-09-30"
LIMIT 0 , 30

这里的问题是它只输出:

代码语言:javascript
运行
复制
2011-09-20 13:00:00
2011-09-27 15:00:00

我期待这样的结果:

代码语言:javascript
运行
复制
    2011-09-20 13:00:00
    2011-09-27 15:00:00
    2011-09-30 14:04:00

因为如果我们查看查询,它应该包含以下内容作为结果:2011-09-30 14:04:00

我在这里做错了什么?

我也在mysql中使用了BETWEEN,但输出仍然是一样的。

任何帮助都将受到极大的感谢和奖励。

谢谢!

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-10-06 14:19:31

作为日期时间处理的日期假定有00:00:00 :00小时:分钟:秒部分。因此,2011-09-30 14:04:00实际上是>= 2011-09-30。

要执行您想要的操作,请尝试:

代码语言:javascript
运行
复制
SELECT date_start
FROM `mytable`
WHERE date(date_start) >= "2011-09-19"
AND date(date_start) <= "2011-09-30"
LIMIT 0 , 30
票数 2
EN

Stack Overflow用户

发布于 2011-10-06 14:17:43

时间也被考虑在内。你应该像这样提到这一点

代码语言:javascript
运行
复制
SELECT date_start
FROM `mytable`
WHERE date_start >= "2011-09-19"
AND date_start <= "2011-09-30 23:59:59"
LIMIT 0 , 30
票数 2
EN

Stack Overflow用户

发布于 2011-10-06 14:17:38

2011-09-30将被解释为2011-09-30 00:00:00。尝试将范围的末尾设置为2011-09-30 23:59:59,这样就可以了。

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

https://stackoverflow.com/questions/7670774

复制
相关文章

相似问题

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