先把两个报表的时区都换算成同一个基准时区,再按换算后的自然日重新汇总,而不是直接拿两个“日期”字段做减法。缺少完整数据或权限时,最小可执行动作是:只取两份报表都有的那一个维度(例如落地页或查询词),把各自时间戳转成同一时区后按天归并,观察重叠区间内两边是否同步变化。能得到的结论是“在这个共同维度上,某天的差异是否稳定”;不能由此推断整体流量对错,也不能据此判断某个算法或抓取行为是否正常。
时区不同最容易被忽略的不是小时差,而是跨日边界。UTC 与 UTC+8 相差 8 小时,意味着 UTC 的 16:00 之后已经进入东八区的第二天。如果一方报表按 UTC 切天、另一方按本地时间切天,那么“同一天”的重叠部分只有 16 小时,剩下 8 小时被分到相邻两天。
处理时先做一件事:把两份报表的原始时间戳各取一条,写明它对应的时区偏移,再换算到同一基准。动作的结果决定下一步——如果换算后日期只差整小时、没有跨日,直接按小时对齐即可;如果出现跨日,就必须按换算后的自然日重新分组,不能沿用原报表的日期列。
面对时区不一致,常见的处理有三条路,选择取决于你手上有什么权限。
如果只有一份报表可导出、另一份只能在界面里看数字,最小动作是固定一个观察窗口,手动记录同一维度在两边连续若干天的值,先确认差异是恒定的偏移还是随机波动。恒定偏移更像切天规则问题,随机波动则可能来自采集口径不同。
把两份报表换算到同一时区后,取它们都覆盖的日期范围,逐日列出同一维度的值。判断依据不是某一天谁高谁低,而是差异是否在时间上稳定:
这里要克制一个冲动:请求量或抓取量归零、某天统计突然下降,都不能单独证明你的处理是对的。合理的原因还包括数据尚未回填、报表按不同时区延迟生成、过滤条件在当天被改动。时区对齐只能解释与边界相关的部分,解释不了采集口径本身的差别。
假设 A 报表按 UTC 切天,B 报表按 UTC+8 切天,两份都只有日汇总。以 3 月 1 日为例:A 的“3 月 1 日”覆盖 UTC 00:00–24:00,换算成 UTC+8 是 3 月 1 日 08:00 到 3 月 2 日 08:00;B 的“3 月 1 日”覆盖 UTC+8 00:00–24:00,即 UTC 2 月 28 日 16:00 到 3 月 1 日 16:00。两者只有 UTC+8 的 08:00–16:00 这 8 小时真正重叠。
这个假设说明:在没有小时明细时,你无法把两份日汇总精确还原成同一天,只能确认重叠窗口。可执行的动作是向数据方索取小时粒度或明确切天规则;若拿不到,就把对比结论限定在“周级别趋势是否一致”,并注明日级别不可比。这一步的结果直接决定后续:能拿到小时数据就做精确对齐,拿不到就降低结论精度,而不是强行按天相减。
即使时区统一了,两份报表的“一天”仍可能因为过滤条件不同而不等价,例如是否包含内部访问、是否剔除已知爬虫、是否按会话还是按请求计数。时区对齐解决的是时间边界,解决不了这些口径问题。因此在诊断记录里,除了写明基准时区,还应写明每份报表的过滤条件和计数单位。只有时间和口径都一致,跨报表的差异才值得进一步追因;否则应把两份数据当作独立证据分别使用,而不是合并成一个结论。