Quiero comparar una fecha de una base de datos que se encuentra entre 2 fechas determinadas. La columna de la base de datos es DATETIME, y quiero compararla solo con el formato de fecha, no con el formato de fecha y hora.
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'
Recibo este error cuando ejecuto el SQL anterior:
Tiene un error en su sintaxis SQL; consulte el manual que corresponde a la versión de su servidor MySQL para conocer la sintaxis correcta para usar cerca de 'us_reg_date, 120)> =' 2000-07-05 'AND CONVERT (CHAR (10), us_reg_date, 120) <=' 2011- 'at línea 1
¿Cómo se puede solucionar este problema?
mysql
sql
comparison
NVG
fuente
fuente
Esa es la sintaxis de SQL Server para convertir una fecha en una cadena. En MySQL puede usar la función FECHA para extraer la fecha de una fecha y hora:
SELECT * FROM players WHERE DATE(us_reg_date) BETWEEN '2000-07-05' AND '2011-11-10'
Pero si desea aprovechar un índice en la columna,
us_reg_date
es posible que desee probar esto en su lugar:SELECT * FROM players WHERE us_reg_date >= '2000-07-05' AND us_reg_date < '2011-11-10' + interval 1 day
fuente
Esto funciona para mi:
select date_format(date(starttime),'%Y-%m-%d') from data where date(starttime) >= date '2012-11-02';
Tenga en cuenta la cadena de formato '% Y-% m-% d' y el formato de la fecha de entrada.
fuente
Tengo la respuesta.
Aquí está el 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')
fuente
esto es lo que funcionó para mí:
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')
Tenga en cuenta que tuve que cambiar STR_TO_DATE (columna, '% d /% m /% Y') de las soluciones anteriores, ya que estaba tardando años en cargarse
fuente