Postgresql 比较文本类型日期并选择大于日期的日期

Postgresql 比较文本类型日期并选择大于日期的日期,postgresql,Postgresql,我有一个数据类型为text的列(last_update_date)为的表。因此我需要传递一个日期,并从表中选择大于的日期 我试着用下面的问题 select batch_uuid,result from @this where extract_status = 'success' and last_update_date > '02/21/2019' 但上述查询不起作用。 请提供任何建议。您需要将两个字符串转换为日期以比较它们: select batch_uuid,result

我有一个数据类型为text的列(last_update_date)为的表。因此我需要传递一个日期,并从表中选择大于的日期

我试着用下面的问题

select batch_uuid,result 
from @this 
where extract_status = 'success' 
  and last_update_date > '02/21/2019'
但上述查询不起作用。
请提供任何建议。

您需要将两个字符串转换为日期以比较它们:

select batch_uuid,result 
from mytable
where 
    extract_status = 'success' 
    and to_date(last_update_date, 'mm/dd/yyyy') > to_date('02/21/2019', 'mm/dd/yyyy')
注:

  • @此
    不是有效的表,我将其更改为
    mytable
  • 请考虑将日期存储在类似数据类型的日期中;使用字符串数据类型会在许多方面对您产生不利影响(首先,使用类似于
    to\u date()
    的函数会破坏列上的现有索引)
@此
从一开始就是无效的SQL。但究竟为什么要将日期值存储在
varchar
列中?这真是一个非常非常糟糕的主意。@horse\u和\u no\u名字有时一个人无法控制我们使用的数据库。不,这是表中已经创建的。我不知道是谁创建的。我正在beanshell脚本平台上工作。这就是他们写PostgreSQL的方式。@a_horse_和_no_的名字,这是我必须同意的。但是一些非常糟糕的软件已经制作出来了,将来也会制作出来。有时,尽管你知道这是一种错误的方法,但你必须熟练掌握,因为改变一切的成本太大了。@MarkBaijens:我希望我们对这种愚蠢行为抱怨越多,它发生的就越少(最近我无意中看到了这篇相关的帖子:)非常感谢你的回答。欢迎@SachikaSandeepa!如果我的回答正确回答了你的问题,请点击绿色的复选标记。。。谢谢