如何让MySQL中的Timestamp减去6周?

sar*_*012 44 mysql timestamp

我有一个名为的字段timestamp.这是成员登录的最后一次.我希望在查询中包含where子句,例如

WHERE timestamp > todays date - 6 weeks
Run Code Online (Sandbox Code Playgroud)

我该怎么做?我想尝试只包括过去6周内登录的用户.

谢谢

Bry*_*eld 64

我发现这种语法比可读性更强date_sub,但无论哪种方式都有效.

WHERE timestamp >= NOW() - INTERVAL 6 WEEK
Run Code Online (Sandbox Code Playgroud)

如果你想通过"今天"(午夜)而不是"现在"(当前时间),你会使用它

WHERE timestamp >= DATE(NOW()) - INTERVAL 6 WEEK
Run Code Online (Sandbox Code Playgroud)

  • 那不需要是WHERE timestamp> = UNIX_TIMESTAMP(NOW() - INTERVAL 6 WEEK)? (6认同)
  • 只是为了澄清一下,你需要使用UNIX_TIMESTAMP(如果你的列中有unix时间戳.如果没有这个函数,它会起作用,但它不会按预期工作.如果你使用MySQL日期/日期时间你不应该当然不要使用unix时间戳功能. (2认同)

ajr*_*eal 6

where column>=date_sub(now(), interval 6 week)
Run Code Online (Sandbox Code Playgroud)