gpt4 book ai didi

php - MySQL:获取一个时间范围内存在的结果,但不存在另一时间范围内的结果

转载 作者:行者123 更新时间:2023-11-29 15:01:31 25 4
gpt4 key购买 nike

我生成了一个数据集,其中包含三十天的数据。我正在尝试隔离过去 2 天内出现但之前 28 天内未出现的新数据元素。

  1. 我运行一个生成测试数据的 PHP 脚本。 (测试时PHP和MYSQL返回时间相同)

  2. 我对其运行以下查询。

  3. 大约半个小时就能准确返回结果。然后,尽管我相信存在匹配的记录,但在运行此查询时不会返回任何记录。

我在 SQL 中是否犯了任何明显的错误,会导致这种明显的“漂移”发生?

关于数据:

该脚本每天生成一场“竞赛”。它用 10 个“笑话”的排名填充排名表。为了测试的目的,脚本生成了前 2 天的比赛,其中 2 个新的“ clown ”进入了前 10 名。剩余 30 天的比赛是相同的。

预期结果:

最近在一场比赛中排名的两个 clown 的名字(在过去两天内,并且在之前的 28 名中没有排名)。

SQL:

SELECT *, FROM_UNIXTIME(`race_timestamp`) as ts FROM `rankings`
WHERE `race_venue` = UNHEX(MD5('someplace'))
AND `jokey` IN
(
SELECT `jokey`
FROM `rankings`
WHERE `race_timestamp`
BETWEEN # Get results for races between now and two days ago
UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 2 DAY)) # timestamp two days ago
AND
UNIX_TIMESTAMP() # time stamp now
)
AND
`jokey` NOT IN
(SELECT `jokey`
FROM `rankings`
WHERE `race_timestamp`
BETWEEN # Get results between 2 and 30 days ago
UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 DAY)) # time stamp 30 days ago
AND
UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 2 DAY)) # time stamp 2 days ago
)
GROUP BY jockey;

希望有人能帮忙!本

最佳答案

如果您想按日期而不是按确切的分钟和秒执行此操作,您可以更改:

UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 DAY))

类似:

DATE(DATE_SUB(NOW(), INTERVAL 30 DAY))

关于php - MySQL:获取一个时间范围内存在的结果,但不存在另一时间范围内的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2974575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com