我有一个名为effective_date
的PostgreSQL表格,数据类型为整数(时期标记)。 我想要做的是选择只有我选择的effective_date的条目(我只想按月查询)。 我的查询如下,问题在于,它没有返回任何内容,尽管表中确实有很多符合选择标准的条目。
$query = "select *
from ". $this->getTable() ."
where pay_stub_entry_name_id = 43
AND to_char(effective_date, 'Mon') = 'Jul'
AND deleted = 0";
effective_date
的数据类型是integer
?不是date
?也不是timestamp
?这是你问题中的一个错误吗?如果它是一个整数,你怎么期望从中得到一个日期呢?它是一个纪元日期(自某个日期以来的秒数)吗? - Craig Ringerto_char
会做什么呢?你在psql
中试过了吗?让我们看看:select to_char( extract(epoch from current_timestamp), 'Mon')
只输出字符串Mon
,它永远不会等于字符串Jul
。所以问题就在这里,你调用了to_char
的整数版本,并期望它知道你想将整数视为日期。在psql
中查看\df to_char
以查看所有to_char
变体。根据文档,只有timestamp
版本适用于日期格式化。 - Craig Ringer