我有一个拥有超过300万条记录的大型数据库。我想搜索按日期,但日期字段以此格式存储为2014-01-20 00:00
我希望以最快的方式搜索数据库。
我正在寻找类似的东西:
SELECT * FROM TableName WHERE Date > 2012 AND Date < 2014
任何指针,因为我不知道从哪里开始
提前致谢
答案 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
您可以在几个月,几天甚至几秒钟内完成此操作。