我正在尝试编写一个查询来从users
表中选择所有记录,其中User_DateCreated
(日期时间字段)是> =从今天起3个月。
有什么想法吗?
答案 0 :(得分:61)
SELECT *
FROM users
WHERE user_datecreated >= NOW() - INTERVAL 3 MONTH
答案 1 :(得分:12)
如果要忽略创建用户的时间,可以使用以下方法。因此,如果您在下午2:00运行Quassnoi的示例查询,这将显示在上午8:00创建的人。
SELECT *
FROM users
WHERE DATE(user_datecreated) >= DATE(NOW() - INTERVAL 3 MONTH)
答案 2 :(得分:2)
使用DATE(user_datecreated)可以防止mysql使用列上的任何索引,从而在表增长时使查询非常慢。
如果您从“3个月前”的日期删除时间,则不必忽略创建用户的时间,因为当天创建的所有用户都将与条件匹配。
SELECT *
FROM users
WHERE user_datecreated >= DATE(NOW() - INTERVAL 3 MONTH);