Comparar datas no MySQL

Eu quero comparar uma data de um database que está entre 2 datas dadas. A coluna do database é DATETIME e quero compará-la apenas ao formato de data, não ao formato datetime.

SELECT * FROM `players` WHERE CONVERT(CHAR(10),us_reg_date,120) >= '2000-07-05' AND CONVERT(CHAR(10),us_reg_date,120) <= '2011-11-10' 

Eu recebo este erro quando executo o SQL acima:

Você tem um erro na sua syntax SQL; verifique o manual que corresponde à sua versão do servidor MySQL para a syntax correta a ser usada perto de ‘us_reg_date, 120)> =’ 2000-07-05 ‘AND CONVERT (CHAR (10), us_reg_date, 120) <=' 2011- 'em linha 1

Como esse problema pode ser corrigido?

Você pode tentar abaixo da consulta,

 select * from players where us_reg_date between '2000-07-05' and DATE_ADD('2011-11-10',INTERVAL 1 DAY) 

Essa é a syntax do SQL Server para converter uma data em uma string. No MySQL você pode usar a function DATE para extrair a data de um datetime:

 SELECT * FROM players WHERE DATE(us_reg_date) BETWEEN '2000-07-05' AND '2011-11-10' 

Mas se você quiser tirar vantagem de um índice na coluna us_reg_date você pode querer tentar isso:

 SELECT * FROM players WHERE us_reg_date >= '2000-07-05' AND us_reg_date < '2011-11-10' + interval 1 day 

Isso funciona para mim:

 select date_format(date(starttime),'%Y-%m-%d') from data where date(starttime) >= date '2012-11-02'; 

Observe a string de formato ‘% Y-% m-% d’ e o formato da data de input.

Ei obrigado por sua ajuda eu tenho a resposta.

aqui está o código …….

 SELECT * FROM table WHERE STR_TO_DATE(column, '%d/%m/%Y') BETWEEN STR_TO_DATE('29/01/15', '%d/%m/%Y') AND STR_TO_DATE('07/10/15', '%d/%m/%Y') 

isso é o que funcionou para mim:

 select * from table where column BETWEEN STR_TO_DATE('29/01/15', '%d/%m/%Y') AND STR_TO_DATE('07/10/15', '%d/%m/%Y') 

Por favor, note que eu tive que mudar STR_TO_DATE (coluna, ‘% d /% m /% Y’) das soluções anteriores, já que demorava a carregar