mysql - 按日期重复查询

标签 mysql datetime

我的应用程序中有一个表,用于存储用户详细信息。在这些字段中,用户保存他们的警报设置。 IE。我们将提醒用户保存的日期。

我的 table 看起来像

id   |    Username     |   name    |    alert_date            |     repeat_on
--------------------------------------------------------------------------------
12   |    user_name    |   name    |  2013-08-12 00:00:00     |     30
15   |    user_nam2    |   name    |  2013-05-12 00:00:00     |     45
--------------------------------------------------------------------------------

通过 cronjob,我们向用户发送提醒电子邮件和短信。喜欢

select * from users where date(alert_date)=CURRENT_DATE

它工作正常,但可以选择根据“repeat_on”天数重复警报。就像我们必须从alert_date开始每隔“30”天(或其他)重复一次警报。我被这个查询困在这里了。

这是执行相同操作的正确表结构吗?

最佳答案

尝试:

SELECT * FROM users 
WHERE alert_date <= CURRENT_DATE AND DATE_ADD(alert_date, INTERVAL repeat_on DAY) >= CURRENT_DATE

关于mysql - 按日期重复查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15962757/

相关文章:

mysql:选择以 2012-02* 开头的所有字段

PHP 函数在 MySQL 中的替代

php - 如何使用 DateTime::modify 定位当月的特定日期?

.net - 如何强制 LINQ to SQL 将 .NET DateTime 作为 datetime2 传递?

python - 如何更快地将更大的.sql文件执行到数据库?

c# - 如何在 C# 中仅格式化 DateTime 对象的时间

powershell - 如何在 PowerShell 中将 Ticks 字符串转换为日期时间?

php - 将数据从一个表复制到另一个表但添加第二个 WHERE 子句不会插入数据

php - 当我尝试使用 php 连接到数据库时出现很多错误

mysql - 从数据库导入表