Postgresql ERROR:运算符不存在:date ~~ unknown

pmi*_*nda 4 sql postgresql

当我执行此查询时,我没有问题:

SELECT a.value, b.label AS campo, 'date' AS tipo
FROM contenido.field_value_textarea a 
JOIN estructura.field b ON a.field=b.id 
WHERE a.value LIKE '%aaa%'
Run Code Online (Sandbox Code Playgroud)

contenido.field_value_textarea是 character varying(2000)

但是,如果我尝试选择:

contenido.field_value_fecha哪个类型是date我收到此错误消息:

错误:运算符不存在:date ~~ unknown

我想要做的是在不同的表之间进行搜索,每个查询都选择FROM它的表.有些表使用文本值,textarea值,整数值,并且它可以工作,但是当值date全部失败时.我能做什么?

编辑:顺便说一句,我的日期值是这样的:2009-05-01

joa*_*olo 12

~~运营商实际上是LIKE运营商.

您正在尝试使用如下表达式:

contenido.field_value_fecha.value LIKE '%aaaa%'
Run Code Online (Sandbox Code Playgroud)

也就是说,您试图将日期与字符串进行比较(没有足够的上下文,被认为是"未知"类型),并确定日期是否类似.

如果您确实想要进行这样的比较,则需要将日期转换为字符串,这可以通过以下方式完成:

contenido.field_value_fecha.value::text LIKE '%aaaa%'
Run Code Online (Sandbox Code Playgroud)

或(使用标准SQL):

CAST(contenido.field_value_fecha.value AS text) LIKE '%aaaa%'
Run Code Online (Sandbox Code Playgroud)

这在语法上是正确的......无论它是否有意义,都是故事的另一部分.

  • @pmirnd`cast(a.value as text)`和`a.value :: text`是相同的,但`::`是PostgreSQL特有的,而`cast(...)`是标准的SQL. (2认同)