mysql - 按特定范围内的日期获取结果,每 N 天重复一次
问题描述
假设以下数据:
+--------------------------+
| id | created_at |
+--------------------------+
| 1 | 2019-04-23 13:01:00 |
| 2 | 2019-04-23 13:18:00 |
| 3 | 2019-04-30 13:01:00 |
| 4 | 2019-04-30 13:06:00 |
| 5 | 2019-04-30 13:17:00 |
| 6 | 2019-04-30 13:23:00 |
| 7 | 2019-04-30 13:32:00 |
| 8 | 2019-05-04 13:19:00 |
| 9 | 2019-05-04 13:41:00 |
| 10 | 2019-05-04 13:51:00 |
+----+---------------------+
我想获取created_at
3 天前 15 分钟窗口内的条目或过去 7 天重复的条目NOW()
例如,如果我在 运行查询2019-05-07 13:30:00
,我想获取条目 #2(14 天前 + 15 分钟内)、#5(7 天前 + 15 分钟内)和 #8(3 天前 + 15分钟)。
我可以很容易地写出 3 天的条件,但我正在为重复的 7 天条件而苦苦挣扎。
到目前为止我的查询:
SELECT id, created_at
FROM user_abstract
WHERE TIMESTAMPDIFF(MINUTE, created_at, NOW()) BETWEEN 3*24*60 AND 3*24*60+15
到目前为止,我使用上述数据集和查询创建了一个小提琴,其中可以自定义 NOW() 以进行测试:https ://www.db-fiddle.com/f/xa4ZEqEcGUDa2N3MLrgvh3/0
任何帮助,将不胜感激。
解决方案
那这个呢?
SET @now = '2019-05-07 13:30:00';
SELECT id, created_at
FROM user_abstract
WHERE TIMESTAMPDIFF(MINUTE, created_at, NOW()) BETWEEN 3*24*60 AND 3*24*60+15
or MOD(TIMESTAMPDIFF(MINUTE, created_at, @now),7*24*60) <= 15
推荐阅读
- python - 在 NumPy 中创建填充矩形的最有效方法
- git - 在 Jenkins 作业中更新子模块 repo
- python - 如何将垂直字符串转换为水平字符串?
- node.js - 猫鼬 | 填充一个集合的引用文档数组,该集合也是另一个集合的嵌入式集合
- scala - 根据 Spark 中的其他列值更新列中的值
- svelte - 将语法高亮添加到 svelte 中的输入
- c# - 如何在 pdftron 中呈现 HTML 文本?
- python - 从列构造矩阵
- ios - SceneKit 中的radialGravity 节点吸引然后排斥对象
- c# - Azure Key Vault 中的应用设置配置部分