Sql 获取错误:日期/时间字段值超出范围:";2001年4月31日在研究生院

Sql 获取错误:日期/时间字段值超出范围:";2001年4月31日在研究生院,sql,postgresql,Sql,Postgresql,我有一个varchar字段,其中日期存储在数据库中,我需要从中获取数据,其值为2001年4月31日 从客户处选择日期(trim(contact_date))

我有一个varchar字段,其中日期存储在数据库中,我需要从中获取数据,其值为2001年4月31日

从客户处选择日期(trim(contact_date))<'2002-03-12'

每当它到达2001年4月31日,我都会得到错误:日期/时间字段值超出范围:“2001年4月31日

是否有任何解决方法,使我不会得到这个错误。因为所有其他日期得到完美的返回

我使用的postgres版本是
PostgreSQL 8.1.22四月份有30天。

四月份有30天。

四月份没有31天,防止它在查询前点击31检查它

四月份没有31天,防止它点击31在查询前检查它

也许更容易修复错误的日期,并且在将来防止这些值进入数据库。或者,如果您的查询是从应用程序发送的,那么您的应用程序可以优雅地处理错误。Thx,我想我会在应用程序中处理这个问题。我不相信这正是我需要的答案,我不得不到stackoverflow来查找it@limasxgoesto0字体看起来这个网站现在真的拥有了一切。我很高兴我们能够提供帮助。也许修复不正确的日期更容易,将来可以防止这些值进入数据库。或者,如果您的查询是从应用程序发送的,那么您的应用程序可以优雅地处理错误。Thx,我想我会在应用程序中处理这个问题真不敢相信这正是我需要的答案,我不得不来stackoverflow寻找答案it@limasxgoesto0:这个网站现在似乎拥有了一切。我很高兴我们能够提供帮助。将日期存储在“date”类型的列中会使这种错误不可能发生。这就是SQL引擎支持“date”类型列的原因之一“。它也更高效——不需要在输出上修剪和转换值。将日期存储在“date”类型的列中将使此类错误不可能发生。这就是SQL引擎支持“date”类型列的原因之一。它也更高效——不需要在输出上修剪和转换值。