PostgreSQL在没有时区的时间戳类型的表中搜索

Posted

技术标签:

【中文标题】PostgreSQL在没有时区的时间戳类型的表中搜索【英文标题】:PostgreSQL search in table with type timestamp without timezone 【发布时间】:2021-06-12 15:28:51 【问题描述】:

我需要使用字符串搜索 Postgres 表中的所有列。但这会导致类型为“timestamp without timezone”的列出错; 它显示错误:“错误:运算符不存在:没有时区的时间戳~~未知”

【问题讨论】:

【参考方案1】:

您正在尝试使用LIKE 运算符(内部为~~)搜索timestamp。这是行不通的,因为日期时间数据类型不存在该运算符。

您必须将timestamp 转换为字符串数据类型:

WHERE CAST(timestamp_col AS text) LIKE '2021-%'

或者,更好的是,明确地将其格式化为字符串:

WHERE to_char(timestamp_col, 'YYYY-MM-DD HH24:MI:SS') LIKE '2021-%'

【讨论】:

以上是关于PostgreSQL在没有时区的时间戳类型的表中搜索的主要内容,如果未能解决你的问题,请参考以下文章

错误:COALESCE 类型时间戳没有时区和整数无法匹配(Postgresql)

PostgresQL + Spring JPA:org.postgresql.util.PSQLException:错误:无法将类型 bytea 转换为没有时区的时间戳

.NET6 和 DateTime 问题。无法将 Kind=UTC 的 DateTime 写入 PostgreSQL 类型“没有时区的时间戳”

Jhipster 中 PostgreSQL 的列类型

PostgreSQL:42883 运算符不存在:没有时区的时间戳 = 文本

PostgreSQL:将字符串转换为没有时区的时间戳以更改时间日期时,我得到了意想不到的结果