我需要找出一種方式,無論是在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