2014-09-30 84 views
0

我有一个超过300万条记录的大型数据库。我想搜索按日期但日期字段存储为这种格式的刺痛2014-01-20 00:00mysql从日期搜索字符串

我正在寻找以最快的方式搜索数据库。

我在寻找的东西,如:

SELECT * FROM TableName WHERE Date > 2012 AND Date < 2014 

任何指针因为我不知道在哪里可以提前

回答

0

你可以用左边的声明

SELECT * FROM TableName WHERE left(Date,4) > 2012 AND left(Date,4) < 2014 
+0

完美的解决方案,我接受了这一个,因为它是最简单的,我从来没有听说过左功能之前,taouhgt我很多,感谢phincon – 2014-10-01 16:57:41

1

开始

感谢我认为你可以使用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 
+0

完美的解决方案将工作finr – 2014-10-01 00:10:40

0

你也可以使用提取功能。这里是一个例子:

SELECT * 
FROM Table_Name 
WHERE extract(year from date_column) BETWEEN 2012 AND 2014 

你可以用几个月,几天,甚至几秒来做到这一点。

http://www.w3schools.com/sql/func_extract.asp

三江源这个