我有一个超过300万条记录的大型数据库。我想搜索按日期但日期字段存储为这种格式的刺痛2014-01-20 00:00mysql从日期搜索字符串
我正在寻找以最快的方式搜索数据库。
我在寻找的东西,如:
SELECT * FROM TableName WHERE Date > 2012 AND Date < 2014
任何指针因为我不知道在哪里可以提前
我有一个超过300万条记录的大型数据库。我想搜索按日期但日期字段存储为这种格式的刺痛2014-01-20 00:00mysql从日期搜索字符串
我正在寻找以最快的方式搜索数据库。
我在寻找的东西,如:
SELECT * FROM TableName WHERE Date > 2012 AND Date < 2014
任何指针因为我不知道在哪里可以提前
你可以用左边的声明
SELECT * FROM TableName WHERE left(Date,4) > 2012 AND left(Date,4) < 2014
开始
感谢我认为你可以使用STR_TO_DATE
功能这一点。在你的情况下,格式字符串将是%Y-%m-%d %H:%i
。所以这应该工作:
SELECT *
FROM TableName
WHERE YEAR(STR_TO_DATE(Date, '%Y-%m-%d %H:%i')) BETWEEN 2012 AND 2014
完美的解决方案将工作finr – 2014-10-01 00:10:40
你也可以使用提取功能。这里是一个例子:
SELECT *
FROM Table_Name
WHERE extract(year from date_column) BETWEEN 2012 AND 2014
你可以用几个月,几天,甚至几秒来做到这一点。
三江源这个
完美的解决方案,我接受了这一个,因为它是最简单的,我从来没有听说过左功能之前,taouhgt我很多,感谢phincon – 2014-10-01 16:57:41