我已将用户注册的日期保存为日期时间,例如2011-12-06 10:45:36。我已运行此查询,并且希望此项目-2011-12-06 10: 45 : 36-将被选择:
SELECT users
.* FROM users
WHERE created_at >= '2011-12-01' AND created_at <= '2011-12-06' 但是不是。存在任何优雅的方式,该如何选择?我最初的想法是2011-12-06 + 1,但是看起来不太好。
您的问题是日期的简短版本使用午夜作为默认设置。因此,您的查询实际上是:
SELECT users.* FROM users WHERE created_at >= '2011-12-01 00:00:00' AND created_at <= '2011-12-06 00:00:00' 这就是为什么您看不到10:45的记录的原因。
更改为:
SELECT users.* FROM users WHERE created_at >= '2011-12-01' AND created_at <= '2011-12-07' 您还可以使用:
SELECT users.* from users WHERE created_at >= '2011-12-01' AND created_at <= date_add('2011-12-01', INTERVAL 7 DAY) 它将以您要查找的相同时间间隔选择所有用户。
您可能还会发现BETWEEN运算符更具可读性:
SELECT users.* from users WHERE created_at BETWEEN('2011-12-01', date_add('2011-12-01', INTERVAL 7 DAY));来源:stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。