Je souhaite comparer une date d'une base de données comprise entre 2 dates données ... La colonne de la base de données est DATETIME et je souhaite la comparer uniquement au format de date, pas au format de date/heure.
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'
Je reçois 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 le bonne syntaxe à utiliser près de 'us_reg_date, 120)> =' 2000-07-05 'AND CONVERT (CHAR (10), us_reg_date, 120) <= «2011-» à la ligne 1
Comment ce problème peut-il être résolu?
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. Dans MySQL, vous pouvez utiliser la fonction DATE pour extraire la date d'un date/heure:
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
, essayez plutôt 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')
voici 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')
Veuillez noter que je devais changer STR_TO_DATE (colonne, '% d /% m /% Y') des solutions précédentes, car il fallait beaucoup de temps pour charger