convert_tz

用法

view: view_name {
  dimension: field_name {
    convert_tz: yes | no
  }
}
层次结构
convert_tz
可能的字段类型
维度、维度组、度量、过滤条件、参数

接受
布尔值(“是”或“否”)

定义

Looker 具有多种时区设置,可在不同时区之间转换基于时间的数据。Looker 默认会进行时区转换。如果您不希望 Looker 对特定 dimensiondimension_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 后,系统会以数据库时区显示基于时间的数据值,但会使用查询时区进行过滤。

由于过滤器始终会进行时区转换,因此数据库时区与查询时区之间的差异可能会导致数据意外地包含在数据集内或从数据集中排除。为避免此问题,请确保查询时区与数据库时区设置为相同的值。

如果启用了用户自选时区,请将时区下拉菜单(位于探索、Look 和信息中心上的运行按钮旁边)设置为与数据库时区相同的值。如果停用了用户自选时区,请将查询时区设置为与数据库时区相同的值。

如果您使用的是自定义过滤条件,请保持时区转换处于启用状态,以确保日期比较有效。如果您使用 convert_tz: no 关闭时区转换,并在自定义过滤条件中添加相应字段,则日期比较结果可能无效。

数据库方言对时区转换的支持

为了让 Looker 在 Looker 项目中转换时区,您的数据库方言必须支持时区转换。下表显示了在最新版 Looker 中支持时区转换的方言:

方言 是否支持?
Actian Avalanche
Amazon Athena
Amazon Aurora MySQL
Amazon Redshift
Amazon Redshift 2.1+
Amazon Redshift Serverless 2.1+
Apache Druid
Apache Druid 0.13+
Apache Druid 0.18+
Apache Hive 2.3+
Apache Hive 3.1.2+
Apache Spark 3+
ClickHouse
Cloudera Impala 3.1+
Cloudera Impala 3.1+ with Native Driver
Cloudera Impala with Native Driver
DataVirtuality
Databricks
Denodo 7
Denodo 8 & 9
Dremio
Dremio 11+
Exasol
Google BigQuery Legacy SQL
Google BigQuery Standard SQL
Google Cloud PostgreSQL
Google Cloud SQL
Google Spanner
Greenplum
HyperSQL
IBM Netezza
MariaDB
Microsoft Azure PostgreSQL
Microsoft Azure SQL Database
Microsoft Azure Synapse Analytics
Microsoft SQL Server 2008+
Microsoft SQL Server 2012+
Microsoft SQL Server 2016
Microsoft SQL Server 2017+
MongoBI
MySQL
MySQL 8.0.12+
Oracle
Oracle ADWC
PostgreSQL 9.5+
PostgreSQL pre-9.5
PrestoDB
PrestoSQL
SAP HANA
SAP HANA 2+
SingleStore
SingleStore 7+
Snowflake
Teradata
Trino
Vector
Vertica