【发布时间】:2011-09-04 16:03:21
【问题描述】:
我有一个 varchar 字段,其中日期存储在数据库中,我需要来自 31 APR 2001 等值的数据我运行以下查询
select date(trim(contact_date)) from clients where date(trim(contact_date)) < '2002-03-12';
每当它到达 2001 年 4 月 31 日时,我都会收到错误 ERROR: date/time field value out of range: "31 APR 2001
是否有任何解决方法使我不会收到此错误。由于所有其他日期都可以完美返回。
我使用的 postgres 版本是 PostgreSQL 8.1.22
【问题讨论】:
-
将日期存储在“日期”类型的列中会使这种错误不可能发生。这就是 SQL 引擎支持“日期”类型的列的原因之一。它也更高效——无需在输出时修剪和转换值。
标签: sql postgresql