首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MYSQL 7天前的日期时间行吗?

MYSQL 7天前的日期时间行吗?
EN

Stack Overflow用户
提问于 2015-08-14 17:50:03
回答 2查看 6.7K关注 0票数 5

试着做各种各样的事情,但现在却空手而归。我让它像这样硬编码:

代码语言:javascript
复制
WHERE (activities.created_at BETWEEN '2015-08-07 00:00:00'
                              AND '2015-08-07 23:59:59.999')

我只是想让它自动化一点,这样我就不用每天都去那里,把日期改到7天前的任何时候。

我最近的测试是:

代码语言:javascript
复制
WHERE (`activities`.`created_at` = CURDATE() - INTERVAL 7 DAY)

它不是抛出错误,而是在需要显示338行时显示一个空集。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-14 18:01:20

这应该能行

代码语言:javascript
复制
where date(created_at) = CURDATE() - interval 7 day

你的问题是等号两边的数据类型不一样。created_at是datetime列,而curdate()则返回日期。上述语句在比较之前将created_at转换为日期。

票数 8
EN

Stack Overflow用户

发布于 2015-08-14 18:01:13

我会这样做:

代码语言:javascript
复制
 WHERE `activities`.`created_at` >= DATE(NOW()) - INTERVAL 7 DAY
   AND `activities`.`created_at` <  DATE(NOW()) - INTERVAL 6 DAY

如果您愿意,可以使用CURDATE()来代替DATE(NOW())

我更喜欢做第二天的“不到”午夜。

如果小于或等于时间分量为"23:59:59“的值,只要分辨率降到第二,这就是MySQL日期时间或时间戳。一些数据库支持更精确的日期时间值,在Server中可降至3ms,例如"23:59:59.982“。

“第二天不到午夜”模式适用于比1秒更精确的日期时间值。

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

https://stackoverflow.com/questions/32015950

复制
相关文章

相似问题

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