编写sql查询以使用给定的用户ID存储下一周的警报详细信息

时间:2016-07-05 07:03:34

标签: mysql java

我正在制作一个调度程序,目前我正在保存客户端使用特定用户ID设置的提醒的详细信息。现在我想添加一个每周重复的按钮,警报将在同一时间重复接下来的7天。什么是sql查询,它存储具有相同userId但具有即将到来的7天的不同日期的多个元组。这是如何存储1条记录。

@Transactional
public boolean addSchedulerBirthdayDetails(String userId,String birthdayDate, String birthdayTime, String birthdayReminder, String reminderType, String timezone, String schedulerNotification)
{
    try{
        Scheduler scheduler=new Scheduler();    
        scheduler.setUserid(userId);
        scheduler.setDate(birthdayDate);
        scheduler.setTime(birthdayTime);
        scheduler.setReminder(birthdayReminder);
        scheduler.setReminderType(reminderType);
        scheduler.setTimeZone(timezone);
        scheduler.setStatus(schedulerNotification);
        schedulerDao.addSchedulerBirthdayDetails(scheduler);
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
    return true;
}

1 个答案:

答案 0 :(得分:0)

你想要的是这样的(主要来自here):

SET @num = -1;
SELECT DATE_ADD( '2009-01-01', interval @num := @num+1 day) AS date_sequence 
FROM c_example
WHERE id IS NOT NULL
HAVING DATE_ADD('2009-01-01', interval @num day) <= '2009-01-13'

结果:

+---------------+
| date_sequence |
+---------------+
| 2009-01-01    |
| 2009-01-02    |
| 2009-01-03    |
... rest snipped...

基本上,这将产生与“虚拟”表中的记录一样多的记录 - 在本例中为c_example,或者如果您的日期溢出结束值。

P.S。欢迎来到论坛。你的问题是非常面向Java的 - 有些人可能会认为它偏离主题。参观导览,查看帮助中心并阅读“帮助我们帮助您”博客。这些网站是一个很好的资源,如果您不小心遵循指导原则,那就更是如此。