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)