大家好我正在开发一个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`
请帮我解决这个问题。
答案 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`