Presto 值不能转换为 TIMESTAMP
Presto Value cannot be cast as TIMESTAMP
我遇到了错误,value cannot be cast as timestamp: 2021-03-14 02:21:16
。这似乎是时间戳转换的完全合格候选者。是否有任何理由触发此错误?
我很想只使用 TRY_CAST
并过滤掉 WHERE
子句中的 NULL
值。但我不确定这个问题有多普遍,并且想更好地了解导致它的原因。 db table 中值的类型是 VARCHAR。
这是因为 Presto 有一个错误,时间戳未根据标准 SQL 行为正确处理。您可能观察到的时间戳落在您会话时区的夏令时转换“间隙”中。
此问题已在 Trino (formerly known as Presto SQL):
中修复
trino> select cast('2021-03-14 02:21:16' as timestamp);
_col0
-------------------------
2021-03-14 02:21:16.000
(1 row)
我遇到了错误,value cannot be cast as timestamp: 2021-03-14 02:21:16
。这似乎是时间戳转换的完全合格候选者。是否有任何理由触发此错误?
我很想只使用 TRY_CAST
并过滤掉 WHERE
子句中的 NULL
值。但我不确定这个问题有多普遍,并且想更好地了解导致它的原因。 db table 中值的类型是 VARCHAR。
这是因为 Presto 有一个错误,时间戳未根据标准 SQL 行为正确处理。您可能观察到的时间戳落在您会话时区的夏令时转换“间隙”中。
此问题已在 Trino (formerly known as Presto SQL):
中修复trino> select cast('2021-03-14 02:21:16' as timestamp);
_col0
-------------------------
2021-03-14 02:21:16.000
(1 row)