如何选择过去4个完整星期的数据(星期天到星期六)?

nsc4cvqm  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(371)

以前,我将查询设置为获取最后4周的数据,但它不计算完整的周数,这会使依赖于查询数据的excel透视表失效。
我把它改成了这个,现在它只把我的数据缩减到了最后两周。
我怀疑和陈述是错误的。有人能证实吗?

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
avwztpqn

avwztpqn1#

好吧,我不明白你的问题是什么。但是在运行之后,这个查询得到了最后四周的结果:

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\u add和date\u sub。
祝你好运:)

相关问题