mysql - 如何选择过去 4 整周的数据(周日到周六)?
问题描述
以前我将查询设置为过去 4 周,但它没有计算整周,这会根据查询的数据抛出 Excel 数据透视表。
我把它改成了这个,现在它只将我的数据缩减到最后两周。
我怀疑 AND 语句有问题。有人可以确认吗?
WHERE
BalanceDay >= DATE(CONVERT_TZ(CURRENT_TIMESTAMP, 'UTC', Mapping.DEFAULT_TIMEZONE) - INTERVAL DAYOFWEEK(CURRENT_TIMESTAMP) - 1 DAY - INTERVAL 4 WEEK)
AND BalanceDay <= DATE(CONVERT_TZ(CURRENT_TIMESTAMP, 'UTC', Mapping.DEFAULT_TIMEZONE) - INTERVAL DAYOFWEEK(CURRENT_TIMESTAMP) - 1 DAY - INTERVAL 3 WEEK) + INTERVAL 6 DAY
这是我之前所做的,它确实拉了 4 周但没有拉整周(即如果它在星期五运行,我会得到 28 天以外的数据):
WHERE
BalanceDay >= CONVERT_TZ(CURRENT_DATE, 'UTC', Mapping.DEFAULT_TIMEZONE) - INTERVAL 4 WEEK
解决方案
好吧,我不了解您查询的真正业务。但在运行它之后,这个查询得到了最后四个星期:
WHERE
BalanceDay >= DATE(CONVERT_TZ(CURRENT_TIMESTAMP, 'UTC', Mapping.DEFAULT_TIMEZONE) - INTERVAL DAYOFWEEK(CURRENT_TIMESTAMP) - 1 DAY - INTERVAL 4 WEEK)
AND DATE(CONVERT_TZ(CURRENT_TIMESTAMP, '+00:00', '+03:00') - INTERVAL DAYOFWEEK(CURRENT_TIMESTAMP) - 1 DAY - INTERVAL 1 WEEK) + INTERVAL 6 DAY
不过考虑使用 DATE_ADD 和 DATE_SUB。
祝你好运 :)
推荐阅读
- javascript - 将双曲线转换为贝塞尔曲线以绘制轨道路径
- pandas - 具有行和列总计的考拉数据框 pivot_table
- coldfusion - 如何使用 ColdFusion 2018/Lucee 5.x 创建网格输出以显示来自两个查询的数据
- cakephp - Cakephp 4 - 合并两个结果集
- redirect - 在 Service-Now 中注销后如何重定向?
- javascript - 类别 JSON 列表
- python - 希腊小写字母 python
- java - 尝试在 webdriver.io 项目中打开 allure-reports 时出现异常 java.lang.UnsatisfiedLinkError
- simulation - Dymola 简单模型:从体积中抽出空气不起作用
- nginx - 如何使用 nginx 将我的 uwsgi 应用程序移动到不同的请求 uri?