我使用下面给出的查询来提取 1 周时间间隔的记录。
mysql_query("SELECT t1.username, SUM(t2.points) AS total
FROM actcontest t2 JOIN user t1 ON t1.userid = t2.userid WHERE t2.date
BETWEEN (CURDATE() - INTERVAL 1 WEEK) AND CURDATE() GROUP BY t1.username ORDER BY
total DESC LIMIT 20");
获取记录后,我将使用不同的查询向前 3 位用户奖励奖金。
这很好用。
问题: 一旦奖金被授予上周前 3 名成员(member),新日期将从上周结束的新周开始日期开始。
假设:我们在日期开始计时器:[dd/mm/yy]
第 1 周 = {01-01-2010 至 07/01/2010}
第 2 周 = {07-01-2010 至 14/01/2010}
第 3 周 = {14-01-2010 至 21/01/2010}
第 4 周 = {2010 年 1 月 21 日至 2010 年 1 月 28 日}
你能帮我为我的脚本构建这个逻辑吗? 我正在使用 php 和 Mysql。
我想做的事:
其中之一是我向第一周的获胜者颁发了奖金。我希望计时器仅开始获取下周的成员,它不应该包括之前的日期。
我希望我澄清了这个问题。
最佳答案
考虑这样的事情:
SET @weekNo := 4;
SET @dateStart := '2014-01-01';
SELECT ADDDATE(CONCAT(@dateStart, ' 00:00:00'), INTERVAL 7*(@weekNo-1) DAY),
ADDDATE(CONCAT(@dateStart, ' 23:59:59'), INTERVAL 7*@weekNo-1 DAY);
你可以在sql中查看上面的脚本。您可以更改顶部的 2 个变量:@weekNo
是您需要计算自开始日期以来的日期间隔的周。 @dateStart
是计时器开始的日期。
在您的 PHP 代码中,您可以通过用 PHP 变量替换 dateStart 和 weekNo 来计算日期。
关于php - 提取 1 周时间间隔的记录,并在新的一周开始时启动下一个计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26422376/