代码之家  ›  专栏  ›  技术社区  ›  fire

mysql选择3个月以上的记录

  •  16
  • fire  · 技术社区  · 14 年前

    我正在尝试编写一个查询以从中选择所有记录 users 表Where User_DateCreated (日期时间字段)从今天起>=3个月。

    有什么想法吗?

    3 回复  |  直到 14 年前
        1
  •  58
  •   Quassnoi    14 年前
    SELECT  *
    FROM    users
    WHERE   user_datecreated >= NOW() - INTERVAL 3 MONTH
    
        2
  •  12
  •   Aaron W.    14 年前

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

    SELECT  *
    FROM    users
    WHERE   DATE(user_datecreated) >= DATE(NOW() - INTERVAL 3 MONTH)
    
        3
  •  2
  •   ceteras    14 年前

    使用日期(user-datecreated)可以防止mysql在列上使用任何索引,从而使查询在表增长时变得非常慢。

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

    SELECT  *
    FROM    users
    WHERE   user_datecreated >= DATE(NOW() - INTERVAL 3 MONTH);