mysql按日期字符串搜索年份

时间:2014-09-30 23:57:48

标签: mysql

我有一个拥有超过300万条记录的大型数据库。我想搜索按日期,但日期字段以此格式存储为2014-01-20 00:00

我希望以最快的方式搜索数据库。

我正在寻找类似的东西:

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

任何指针,因为我不知道从哪里开始

提前致谢

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

您可以使用左语句

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

答案 2 :(得分:0)

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

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

您可以在几个月,几天甚至几秒钟内完成此操作。

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