用量
dimension: field_name {
convert_tz: yes | no
}
}
层次结构
convert_tz |
可能的字段类型
维度、维度组、衡量、过滤、参数接受
布尔值(是或否) |
定义
Looker 提供各种时区设置,用于在不同时区之间转换基于时间的数据。Looker 默认进行时区转换。如果您不希望 Looker 对特定的 dimension
、dimension_group
(使用 type: time
或 filter
字段)执行时区转换,则可以使用 convert_tz
参数。这在已转换为相应时区的字段内非常有用,或在您需要避免双时区转换的一些高级情况下非常有用。
一般而言,仅当全部时间转换为同一时区时,时间计算(差异、时长等)才能正常工作。在编写 LookML 时,请务必考虑时区。
示例
不对 local_created
维度组执行时区转换:
dimension_group: local_created {
type: time
timeframes: [time, date, week, month]
sql: ${TABLE}.local_created_at ;;
convert_tz: no
}
注意事项
convert_tz: no
仅适用于维度,而不适用于使用维度的过滤条件。换句话说,过滤条件始终会执行时区转换。如果您指定 convert_tz: no
,基于时间的数据值将以数据库时区显示,但会使用查询时区进行过滤。
由于过滤条件始终会执行时区转换,因此数据库时区和查询时区之间的差异可能会导致数据被意外包含或从数据集中排除。为避免出现这种情况,请确保查询时区与数据库时区的设置相同。
如果启用了用户专用时区,请将时区下拉菜单(位于“探索”、“外观”和信息中心上的运行按钮旁边)设置为与数据库时区相同的值。如果特定于用户的时区已停用,请将查询时区设为与数据库时区相同的值。
如果您使用的是自定义过滤条件,请确保时区转换功能处于启用状态,以确保有效的日期比较。如果您通过 convert_tz: no
关闭时区转换功能,但将该字段添加到自定义过滤条件中,那么日期比较可能会无效。
对时区转换的数据库方言支持
为了让 Looker 转换 Looker 项目中的时区,您的数据库方言必须支持时区转换。下表显示了在最新版 Looker 中,哪些方言支持时区转换: