检索日期时结果错误

时间:2017-05-23 18:26:48

标签: sql postgresql

我正在使用PostgreSQL。我有两个数据库表,我想得到存储在table1 daterange列中的最小和最大日期,这是类型字符变化。 table1和table2使用sid映射。我希望得到table1的最大和最小日期范围与table2的sid相比。请找到演示here。结果是错误的。

表1:

sid  daterange  

100  5/25/2017
101  1/24/2017
102  4/4/2014
103  11/12/2007
104  4/24/2012
105  01/15/2017
106  1/1/2017
107  3/11/2016
108  10/10/2001
109  1/10/2016
110  12/12/2016
111  4/24/2017
112  06/28/2015
113  5/24/2017
114  5/22/2017

表2:

sid  description

100  success
101  pending
104  pending
105  success
106  success
107  success
110  success
111  pending
112  failed
113  failed
114  pending

以下是我的询问:

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;

结果如下所示是错误的(显示的是mindate和maxdate是错误的日期)。

mindate     maxdate
2013-12-07  2019-01-07

请指教。 table1中的daterange列是字符变化的类型。我不能使用::date转换为日期类型,因为我需要在我的java hibernate代码中使用此查询而java代码无法识别::

1 个答案:

答案 0 :(得分:1)

您有日期和月份混合日期格式字符串。 应该 to_date(table1.daterange,'MM / DD / YYYY')