【问题标题】:Get the number of days of difference between two dates in MySQL获取MySQL中两个日期相差的天数
【发布时间】:2015-11-26 05:38:51
【问题描述】:

我正在尝试获取过去 30 天的非活动用户。我做了这个查询:

SELECT * FROM users WHERE (30 - lastlogin) > 30

但是我没有得到任何价值,我想看看过去 30 天没有登录的用户是谁。上次登录的日期和数据库里的一样:

DD/MM/YYYY

【问题讨论】:

  • 那么,上次登录日期不是以datetime格式存储的吗?
  • lastlogin 是什么数据类型 - DATETIME,数据库是 MySQL?
  • 您已指定sql-servermysql 标签。选择一个正确的。
  • 这里的错误太多了。坐下来喝杯咖啡和一本像样的书或教程,然后回到我们身边
  • 我删除了sql-server,因为如果您使用的是mysqli,那么您就没有使用sqlserver。如果您使用的是 sql-server,请添加回来,但 sqlserver 与 mysql 是分开的;它不仅仅是一个使用 sql 的服务器。

标签: php mysql sql mysqli


【解决方案1】:
SELECT * 
FROM users 
WHERE DATEDIFF(NOW(), str_to_date(`lastlogin`, '%d/%m/%Y')) > 30

希望这会有所帮助。

【讨论】:

  • 非常有帮助的答案
【解决方案2】:

尝试在收缩之间使用,因为MySql必须工作如下:

select *
from users
where lastlogin between date_sub(now(), interval 30 day) and now();

另请参阅:how to subtrack 30 days from the current datetime in mysql

【讨论】:

    猜你喜欢
    • 2019-05-11
    • 2011-01-30
    • 2017-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-18
    • 2021-05-29
    相关资源
    最近更新 更多