MySql选择Mix和Max year

时间:2015-08-23 13:20:47

标签: mysql

大家好我正在开发一个php和mysql应用程序。我想从年份中选择Min和Max。它应该显示正确的年份如下:

Min = 1998
Max = 2014

我的表结构如下

表:学生

year varchar(32)    utf8_unicode_ci 
-------------------------------
06-04-2012
02-05-2014
19-04-1999
05-05-2014
06-04-1998

我尝试使用MySql Min和Max但效果不佳。

SELECT MIN(`year`) AS Year FROM `Students`

SELECT Max(`year`) AS Year FROM `Students`

请帮我解决这个问题。

2 个答案:

答案 0 :(得分:1)

您不应将日期存储为字符串。您应该将它们存储为日期。

但是,因为你有这种格式,你可以使用right()函数获得年份:

select min(right(year, 4)), max(right(year, 4))
from students;

如果出于某种不可思议的原因,您必须将日期存储为字符串,则使用ISO标准YYYY-MM-DD格式。

如果您希望将整个值中的最小值作为日期,请将其转换为日期:

select min(str_to_date(year, '%d-%m-%Y')), max(str_to_date(year, '%d-%m-%Y'))
from students;

但是,您应该首先使用正确的数据类型存储日期。

答案 1 :(得分:0)

使用YEAR()功能,而不是

SELECT MIN(YEAR(`year`)) AS Year FROM `Students`