首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用结束日期列编写sql查询以显示特定时间段的任务提醒?

如何使用结束日期列编写sql查询以显示特定时间段的任务提醒?
EN

Stack Overflow用户
提问于 2018-07-14 14:33:01
回答 1查看 1.2K关注 0票数 1

我正在处理一个应用程序,其中有一个带有company_namestart_dateend_date的表。我有很多公司,分别是一月至三月、四月至六月、七月至九月、十月至十二月,我现附上我的sql资料截图,供你参考。

现在,假设三月是一些end_date,你可以看到表数据ABC,XYZ和PQR有三月份的end_date。所以我想在仪表盘上展示提醒。

如果Marchend_date,那么它应该在end_date的1个月前开始在仪表板上显示,在以前的month.Means的第8天开始显示,它将在February的第8部分开始显示。直到May的第七。 如果Juneend_date,那么它应该在end_date的1个月前开始在仪表板上显示,在以前的month.Means的第8天开始显示,它将在May的第8部分开始显示。直到August的第七。 正如我所说,它将从前一个月的第8个月开始,直到接下来的2个月和第3个月的第7个月。如何为这类场景编写查询。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-16 21:38:56

我不确定在提醒结束前30天显示提醒是否可以,或者出于法律或商业需要,提醒需要在一个月前才开始,但我认为这些查询中的任何一个都是在结束日期之前检索提醒的好开始(假设在结束日期之后不显示)。

第一个决定结束日期是否在接下来的30天内:

代码语言:javascript
复制
-- Items with end date in next 30 days from now    
select *, DateDiff(enddate,now()) AS DaysUntilEnd
from data
where 
  DateDiff(enddate,now()) >=0 AND DateDiff(enddate,now()) < 30;

第二个计算提醒的开始日期和结束日期:

代码语言:javascript
复制
-- Items with notification start exactly 1 month before
select *, 
DATE_SUB(enddate, INTERVAL 1 MONTH) AS NotificationStart,
enddate AS NotificationEnd
from data
where
   now() > DATE_SUB(enddate, INTERVAL 1 MONTH) AND
   now() <= enddate

SQL Fiddle你可以用它试试

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51340454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档