获取MySQL中两个日期相差的天数

Posted

技术标签:

【中文标题】获取MySQL中两个日期相差的天数【英文标题】:Get the number of days of difference between two dates in 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 的服务器。 【参考方案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

【讨论】:

以上是关于获取MySQL中两个日期相差的天数的主要内容,如果未能解决你的问题,请参考以下文章

SQL 计算两个日期相差多少天数的函数

mysql两个日期计算天数

MySQL计算两个日期相差的天数月数年数

golang 获取AB两个日期相差多少天

js计算两个日期相差的天数

java中计算两个日期之间差的天数