查询出现错误: operator does not exist: timestamp without time zone ~~ unknown LINE 1: select case when d_datetime like '%2023%' then 2023 when d_d... ^ HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
时间: 2024-01-26 20:02:31 浏览: 181
这个错误是因为 PostgreSQL 数据库中的 `timestamp without time zone` 类型不能直接与字符串(`unknown`)进行匹配。你需要将字符串转换为时间戳类型,然后再进行匹配。
你可以使用 PostgreSQL 内置的 `to_timestamp` 函数将字符串转换为时间戳类型,例如:
```
SELECT CASE WHEN to_char(d_datetime, 'YYYY') LIKE '%2023%' THEN 2023 ELSE NULL END FROM your_table;
```
在上面的查询中,我使用了 `to_char` 函数将时间戳转换为字符串,然后再使用 `LIKE` 进行匹配。如果你只需要查询包含 `2023` 的年份,也可以使用 `extract` 函数,例如:
```
SELECT CASE WHEN extract(year FROM d_datetime) = 2023 THEN 2023 ELSE NULL END FROM your_table;
```
阅读全文