Sql 检索日期时结果错误
我在用PostgreSQL。我有两个数据库表,我想获取存储在table1 daterange列中的最小和最大日期,该列的类型为字符变化。表1和表2使用sid进行映射。当与表2的sid进行比较时,我想得到表1的最大和最小日期范围。请找到演示。结果是错误的 表1:Sql 检索日期时结果错误,sql,postgresql,Sql,Postgresql,我在用PostgreSQL。我有两个数据库表,我想获取存储在table1 daterange列中的最小和最大日期,该列的类型为字符变化。表1和表2使用sid进行映射。当与表2的sid进行比较时,我想得到表1的最大和最小日期范围。请找到演示。结果是错误的 表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/2
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
请给我一些建议。表1中的daterange列的类型为character Variable。我无法使用::date转换为date类型,因为我需要在java hibernate代码中使用此查询,而java代码无法识别::日期格式字符串中的日期和月份混淆了。 应该是
to_datetable1.daterange,“MM/DD/YYYY”为什么结果错误…是否希望每个sid都有一个结果?否。我的意思是显示的最小和最大日期错误。