如何选择过去4个整周的数据(周日至周六)?

时间:2018-07-28 17:18:32

标签: mysql

以前,我已将查询设置为可以获取最近4周的时间,但没有计算整周的时间,这使Excel数据透视表取决于查询的数据。

我将其更改为此,现在仅将数据缩减到最近2周。

我怀疑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

1 个答案:

答案 0 :(得分:0)

嗯,我不了解您查询的真实情况。但是运行之后,该查询得到了最近的四个星期:

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。

祝你好运:)