我正在使用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代码无法识别::
答案 0 :(得分:1)
您有日期和月份混合日期格式字符串。 应该 to_date(table1.daterange,'MM / DD / YYYY')