php - 提取 1 周时间间隔的记录,并在新的一周开始时启动下一个计时器

标签 php mysql sql

我使用下面给出的查询来提取 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/

相关文章:

mysql - 在 php 5.6 上运行的查询不会在 php 7 上抛出错误

php - 如何删除图像中的透明色?

php - 在 Facebook 应用程序中存储或不存储数据

PHP:表单选择框不会将更改的选择写入数据库

mysql - 加快 SQL 查询

mysql - 无法在 Azure Database for MySql 上创建存储过程

sql - 日期如 yyyy/yy 到 yyyy(例如 :2016/17 to 2016)

c# - MySql 从列中选择所有数据并计数

android - 将 SQL Server 查询更改为 SQLite 中的等效查询

javascript - 在 Ajax 调用中获取解析器错误