作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 mysql 中,我有一个包含列的用户表
ban_start_date [日期时间]
ban_days [整数]
这意味着用户将被禁止再 ban_days
天使用 ban_start_date
。如何选择用户表,但添加一个新列,说明他们被禁止的时间还剩多少天?
我知道我需要检查 NOW() 是否在 ban_start_date
和 ban_start_date
+ban_days
之间,如果是,请获取差异。类似这样的事情。
谢谢
最佳答案
请尝试:
SELECT
DATEDIFF(DATE_ADD(banned_users.ban_start_date , INTERVAL banned_users.ban_days DAY), DATE(CURDATE())) AS ban_days_left
FROM
users as banned_users
WHERE
DATE_ADD(banned_users.ban_start_date , INTERVAL banned_users.ban_days DAY) > DATE(CURDATE());
查询仅获取执行时被禁止的用户,然后将 ban_days
添加到 ban_start_date
临时生成 ban-enddate (DATE_ADD(banned_users.ban_start_date, INTERVALbanned_users.ban_days DAY)
)。之后,使用 DATEDIFF
计算 ban-enndate 与今天日期之间的天数,这实际上应该导致 ban_days_left
.
关于mysql - 如何在MySql中获取日期差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27850873/
我是一名优秀的程序员,十分优秀!