众所周知,PostgreSQL 8.3对数据类型进行了非常严格的检查,从PostgreSQL8.x迁移到PostgreSQL8.3后,它使很多应用程序遇到许多数据类型错误。 主要是由数据类型检查引起的。
常见错误之一是to_date()函数。 它接受两个文本作为参数。
to_date(text,text)
好的,现在我创建一个如下表。 一个简单的表调用n_url_test包含一个createddate作为时间戳数据类型。
CREATE TABLE n_url_test
(
urltestid bigserial NOT NULL,
createddate timestamp without time zone DEFAULT now(),
CONSTRAINT n_url_to_test_pkey PRIMARY KEY (urltestid)
)
我在PostgreSQL8.2中运行以下sql,它以YYYY-MM-DD格式返回我的预期结果。
--PostgreSQL 8.2
---------------
select to_date(createddate,'YYYY-MM-DD') from n_url_test;
但是,当我迁移到PostgreSQL8.3之后,我遇到了以下错误
--PostgreSQL 8.3
---------------
select