mysql选择记录大于3个月

fir*_*ire 17 php mysql sql

我正在尝试编写一个查询来从users表中选择所有记录,其中User_DateCreated(datetime字段)从今天开始> = 3个月.

有任何想法吗?

Qua*_*noi 65

SELECT  *
FROM    users
WHERE   user_datecreated >= NOW() - INTERVAL 3 MONTH
Run Code Online (Sandbox Code Playgroud)

  • 不是 user_datecreated <= NOW() - INTERVAL 3 MONTH 吗? (2认同)

Aar*_* W. 12

如果要忽略创建用户的时间,可以使用以下内容.因此,如果您在下午2:00运行Quassnoi的示例查询,这将显示在上午8:00创建的人.

SELECT  *
FROM    users
WHERE   DATE(user_datecreated) >= DATE(NOW() - INTERVAL 3 MONTH)
Run Code Online (Sandbox Code Playgroud)


cet*_*ras 6

使用 DATE(user_datecreated) 可以防止 mysql 使用该列上的任何索引,从而在表增长时使查询变得非常慢。

如果您从“3 个月前”日期中删除时间,则不必忽略创建用户的时间,因为当天创建的所有用户都将符合条件。

SELECT  *
FROM    users
WHERE   user_datecreated >= DATE(NOW() - INTERVAL 3 MONTH);
Run Code Online (Sandbox Code Playgroud)