PostgreSQL - 按转换后的字符串排序

时间:2016-04-05 23:59:28

标签: postgresql date sqlite

全新的PostgreSQL,但对T-SQL非常熟悉。我需要编写两个非常简单的查询,它们从表中的date_column返回最旧和最新的日期。 date_column是TEXT格式“mm / dd / yyyy”(它只是)。我正在尝试使用我之前的T-SQL知识在PostgreSQL中执行此操作。对于最新的日期,此查询正确地给出了答案:

select date_column
from my_table
order by date(date_column) desc limit 1;

但是,通过将“desc”更改为“asc”或完全删除限定符来修改查询会给出与最新日期相同的答案。

这里发生了什么?我觉得即使我得到了最新日期的正确答案,语法也是不正确的方法。 date_column有许多不同的值,所以我不会忽略它。我看到一个非常古老的(~2010)帖子使用子串来解析日期,而我的乐观主义者认为Postgre 已经从那时起已经进化了:)

提前为任何帮助干杯。

1 个答案:

答案 0 :(得分:0)

这应该有效:

select date_column
from stringdates
order by to_date(date_column, 'MM/DD/YYYY') desc limit 1;

select date_column
from stringdates
order by to_date(date_column, 'MM/DD/YYYY') limit 1;

请参阅SQLFiddle

您还可以查看这些docs