Postgresql查询问题

Postgresql查询问题,sql,postgresql,Sql,Postgresql,我有一个变量,格式是2011-05-13。 我想做一个查询,向这个变量添加一天,并在数据库中搜索这样的天数 我提出了这个问题,但它不起作用 select phone from employee where date like (select date '2011-05-13' + 1) % 有人能帮忙吗?您需要一个时间间隔: SELECT phone FROM employee WHERE datefield = (date '2011-05-13' + INTERVAL '1 DAY') ;

我有一个变量,格式是2011-05-13。 我想做一个查询,向这个变量添加一天,并在数据库中搜索这样的天数

我提出了这个问题,但它不起作用

select phone from employee where date like (select date '2011-05-13' + 1) %
有人能帮忙吗?

您需要一个时间间隔:

SELECT phone FROM employee WHERE datefield = (date '2011-05-13' + INTERVAL '1 DAY') ;
编辑:在处理日期时不要使用LIKE,日期没有LIKE。

您需要一个间隔:

SELECT phone FROM employee WHERE datefield = (date '2011-05-13' + INTERVAL '1 DAY') ;
编辑:在处理日期时不要使用LIKE,日期没有LIKE。

请尝试以下操作:

SELECT phone FROM employee WHERE to_char(date, 'yyyy-mm-dd')::timestamp = ('2011-05-13'::timestamp + '1 day'::interval)
请尝试以下操作:

SELECT phone FROM employee WHERE to_char(date, 'yyyy-mm-dd')::timestamp = ('2011-05-13'::timestamp + '1 day'::interval)

我的日期行类似于2011-05-13 22:13:09.969,因此我需要%符号来匹配2011-05-13。我不知道怎么做。在2011-05-13中添加1天对我来说很有用,因为这个查询选择日期“2011-05-13”+1。@tipotas:use between“where date between'2011-05-13'和'2011-05-14'”将获得5-13中的所有值,因为它将把它们视为午夜到午夜。只需将时间戳转换为日期:cast(字段为date)='2011-05-13'(根据OP)所讨论的列为文本类型。我有点怀疑,但谁知道呢@tipotas:您的示例查询中提到的“日期”列是什么类型的?@Milen A.Radev:这可能是一个错误,他应该修复它。我的日期行类似于2011-05-13 22:13:09.969,所以我需要%符号来匹配2011-05-13。我不知道怎么做。在2011-05-13中添加1天对我来说很有用,因为这个查询选择日期“2011-05-13”+1。@tipotas:use between“where date between'2011-05-13'和'2011-05-14'”将获得5-13中的所有值,因为它将把它们视为午夜到午夜。只需将时间戳转换为日期:cast(字段为date)='2011-05-13'(根据OP)所讨论的列为文本类型。我有点怀疑,但谁知道呢@tipotas:你的示例查询中提到的“日期”列是什么类型的?@Milen A.Radev:这可能是一个错误,他应该修复它。你也可以使用date\u trunc('day',date),而不是to\u char()。只要将它转换为日期,你就可以了。您不需要字符串函数来提取日期部分。以这种方式使用to_char()可能无法使用索引。您也可以使用date_trunc('day',date),而不是to_char()。只需将其转换为日期即可。只提取日期部分不需要字符串函数to_char()。以这种方式使用to_char()可能无法使用索引。
“date”
字段是什么类型?查询“不工作”是什么意思?它是否由于语法错误而失败,因为您想引用并连接裸露的“%”?它会失败吗?运算符不存在错误,因为没有重载的类似运算符接受时间戳字段和字符串,而且您上面的查询并不完全是您正在执行的查询?日期字段是什么类型?查询“不工作”是什么意思?它是否由于语法错误而失败,因为您想引用并连接裸露的“%”?它是否会因为运算符不存在错误而失败,因为并没有重载的类似于运算符的运算符接受时间戳字段和字符串,并且上面的查询并不是您正在执行的查询?