我需要找出一种方式,无论是在MySQL中还是以编程方式(ColdFusion,但逻辑不是语言特定的)根据每月的日期提取所有用户记录他们每个月都注册一次。根据每月的用户日期选择记录用户注册
例如,2-5-15我想选择所有在任何月份和任何一年的第四个月注册的用户 - 1-4-15,12-4-15,1-4-14等
可能在每个月的第一天出现。所以在3-1上,我需要得到2-28的用户,还有1-28,1-29,1-30和1-31,同样的12月,11月需要11-28,11- 29,11-30等
简单的解决方案是在每个月的第一天运行该过程,只是让每个人都从前一个月的时间段,但我想探索每天运行选择以前的日期。
我正在思考这样的事情。如果运行日期是本月的第一天,请确定上个月有多少天。如果是31,没问题。如果是30,我需要从所有前几个月/年获得所有30和31。如果是28,那么我需要得到28s,29s,30s和31s。我认为这个逻辑支撑起来......
[编辑2]这里有一些我认为可行的伪代码。
set runDate = '2015-03-01'
if day(runDate) = '01'
set daysLastMonth = days in previous month (28)
loop from daysLastMonth to 31 index = i
query all records where day(addDate) = i
endloop
else
query all records where day(addDate) = day(runDate)-1
endif
如果需要,这可以纯粹在DB端处理,然后在CF中置入前端。 – 2015-02-05 15:00:44
我更新了今天早上一直在努力的一条思路。 – Steve 2015-02-05 15:01:19
@Steve - 不知道我是否按照这个问题......上述内容似乎描述了*你如何试图接近你的任务,而没有完全定义这个任务是什么。确切地说,你想用简单的英文而不是伪代码来做什么?例如,“在每个月的第一天,我想要检索在前一天”(或之前的X天)注册的用户 - 在任何一年? – Leigh 2015-02-07 19:32:46