Comparez les dates dans MySQL

Je veux comparer une date d’une firebase database qui se situe entre 2 dates données. La colonne de la firebase database est DATETIME et je souhaite la comparer uniquement au format de date et non au format 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' 

J’obtiens cette erreur lorsque j’exécute le code SQL ci-dessus:

Vous avez une erreur dans votre syntaxe SQL; consultez le manuel correspondant à la version de votre serveur MySQL pour la syntaxe appropriée à utiliser près de ‘us_reg_date, 120)> =’ 2000-07-05 ‘ET CONVERT (CHAR (10), us_reg_date, 120) <=' 2011- 'à ligne 1

Comment résoudre ce problème?

Vous pouvez essayer ci-dessous la requête,

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

C’est la syntaxe SQL Server pour convertir une date en chaîne. En MySQL, vous pouvez utiliser la fonction DATE pour extraire la date d’un datetime:

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

Mais si vous souhaitez tirer parti d’un index sur la colonne us_reg_date vous pouvez essayer ceci:

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

Cela fonctionne pour moi:

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

Notez la chaîne de format ‘% Y-% m-% d’ et le format de la date d’entrée.

hé les gars merci pour votre aide j’ai eu la réponse.

voici le code …….

 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') 

c’est ce que cela a fonctionné pour moi:

 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') 

S’il vous plaît, notez que je devais changer STR_TO_DATE (colonne, ‘% d /% m /% Y’) des solutions précédentes, car cela prenait beaucoup de temps à charger