2

我想按月绘制时间序列,但我的输入数据格式为“%Y-%m-%d”。因此,我使用以下公式创建另一个时间维度:

TODATE(date, "%Y%M")

我的问题是,新的维度比它应该的要晚一个月。例如,输入日期“2017-08-15”会导致“2017-07”(或任何 Data Studio 内部日期结构中的信息)。结果是时间序列指标的变化似乎比实际发生的时间早一个月。这是一个带有谷歌表格数据和结果图的玩具示例的屏幕截图。请注意,时间序列图设置为累积:

八月份数量增加的数据: 8 月份数量增加的数据

显示 7 月计数增加的时间序列图: 时间序列图显示 7 月的计数增加

2017 年 8 月的人数增加似乎发生在 7 月。虽然这些数据来自工作表,但我的实际问题中的数据来自 Postgres DB 表,所以我不认为这是数据源的问题。我究竟做错了什么?

4

6 回答 6

1

列出的解决方案中没有任何东西对我有用。然而,我注意到,

TODATE(start_date,'%Y%m%d','%m')

给出正确的月份。

因此,我有点矫枉过正:

  1. CONCAT(TODATE(start_date,'%Y%m%d','%Y'),TODATE(start_date,'%Y%m%d','%m'))
  2. 转换为 YYYYMM 或源字段列表中的 '%Y%m'。
于 2019-08-12T12:05:06.763 回答
1

类似的问题:

  1. todate(date, 'DEFAULT_DASH', "%m %Y")导致落后一个月的“月年”配置。

  2. 此外,在 YYYYMM 的数据类型字段中使用建议的日期格式也不起作用。

解决方案(对我来说):我首先使用包含日期(即todate(date, 'DEFAULT_DASH', "%d %m %Y")的 todate 函数,然后将日期格式设置为年月(YYYYMM)来解决。

于 2019-05-06T11:31:19.073 回答
0

对我有用的是:

todate(concat(start_date, '01'), '%Y%m%d', '%Y%m%d') 

然后选择日期>YYYYmm格式。

于 2021-01-05T20:05:54.073 回答
0

请注意%M代表分钟,而不是月份。%m将被视为“月”值。

于 2018-06-15T09:15:09.923 回答
0

这是非常简单的修复,不知道我是如何忽略它的。无需使用函数TODATE(),只需将数据类型字段中的日期格式更改为 YYYYMM。我必须假设该字段对应于输入格式,而不是输出:

在编辑数据源中更改日期格式

于 2018-02-21T03:05:24.543 回答
-1

我有同样的问题。我使用该PARSE_DATE功能修复了它。

我有两列,一个是年份,另一个是月份。首先,我CONCAT两个都喜欢这样:

在此处输入图像描述

这给了我类似“2022/01”的信息

在此之后,我只需要使用这样的PARSE_DATE功能。

在此处输入图像描述

这给了我最终的结果。作为价值:2022/01 的日期。不像 2021/12。

于 2022-01-05T12:32:53.523 回答