更改日期格式时给出错误的结果

时间:2017-05-23 21:16:24

标签: postgresql

我正在使用PostgreSQL。我正在执行一个查询,它返回表中的最新日期和旧日期。目前显示的结果是YYYY-MM-DD格式,我希望结果以MM/DD/YYYY格式显示。

以下是我的询问:

select min(daterange) as minDate,
       max(daterange) as maxDate 
from   (SELECT to_date(table1.daterange, 'DD/MM/YYYY') as daterange 
        FROM   table1, table2 
        where  table1.sid = table2.sid) tt;

请指教。 table1中的daterange列是字符变化的类型。我不能使用::date转换为日期类型,因为我需要在我的java hibernate代码中使用此查询,并且java代码无法识别::。 我尝试使用to_char和to_date,但显示的结果是错误的日期。请找到演示here

select min(daterange) as min_cf, 
       max(daterange) as max_cf
from   (select to_char(to_date(table1.daterange, 'DD/MM/YYYY'),'MM/DD/YYYY') as daterange 
        from   table1, table2 
        where table1.sid = table2.sid) tt;

1 个答案:

答案 0 :(得分:2)

你可以通过这种方式获得它,格式化最终结果。

select to_char(min(daterange), 'MM/DD/YYYY') as min_cf, 
       to_char(max(daterange), 'MM/DD/YYYY') as max_cf
from   (select to_date(table1.daterange, 'DD/MM/YYYY') as daterange 
        from table1
        inner join table2 
        on table1.sid = table2.sid) tt;
min_cf     | max_cf    
:--------- | :---------
12/07/2013 | 01/07/2019

dbfiddle here