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

时间:2017-02-24 23:04:06

标签: 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%'

contenido.field_value_textarea是character varying(2000)

但如果我尝试选择:

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

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

我要做的是在不同的表之间进行搜索,每个查询都选择FROM它的表。有些表使用文本值,textarea值,整数值,并且它可以工作,但是当值为date时,所有表都会失败。我该怎么办?

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

1 个答案:

答案 0 :(得分:11)

~~运算符实际上是LIKE operator

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

contenido.field_value_fecha.value LIKE '%aaaa%'

也就是说,您正在尝试将日期与字符串进行比较(如果没有足够的上下文,则将其视为类型'未知'),并确定日期是否类似东西。

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

contenido.field_value_fecha.value::text LIKE '%aaaa%'

或(使用标准SQL):

CAST(contenido.field_value_fecha.value AS text) LIKE '%aaaa%'

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