me gustaría select * from table where dates between (some_date and another_date)
mysql: buscar entre las fechas almacenadas como varchar
el problema es que las fechas se almacenan como varchar
!
Estos son ejemplos de las fechas que tengo:
7/29/2010 9:53 AM
7/16/2010 7:57:39 AM
favor notar que algunos registros tienen segundos y algunos no lo hacen
i no se preocupan por el momento a todos Sólo necesito la fecha
reporttime
es el campo date
esto no está funcionando:
SELECT * FROM batchinfo
where cast(reporttime as date) between ('7/28/10' and '7/29/10')
esto:
SELECT * from batchinfo WHERE reporttime BETWEEN STR_TO_DATE(7/28/2010, '%m/%/d/%Y %h:%i:%s %p')
AND STR_TO_DATE(7/29/2010, '%m/%/d/%Y %h:%i:%s %p')
está regresando:
Truncated incorrect datetime value: '7/8/2010 11:47 AM'
Incorrect datetime value: '0.00012009' for function str_to_date
esto:
SELECT * from batchinfo WHERE STR_TO_DATE(reporttime, '%m/%/d/%Y %h:%i:%s %p') BETWEEN STR_TO_DATE(7/28/2010, '%m/%/d/%Y')
AND STR_TO_DATE(7/29/2010, '%m/%/d/%Y')
está regresando:
Incorrect datetime value: '7/8/2010 11:47 AM' for function str_to_date
POTROS OMG:
estoy tomando todo antes del primer espacio en blanco:
SELECT * from batchinfo WHERE STR_TO_DATE(LEFT(reporttime,LOCATE(' ',reporttime)), '%m/%/d/%Y') BETWEEN STR_TO_DATE(7/28/2010, '%m/%/d/%Y')
AND STR_TO_DATE(7/29/2010, '%m/%/d/%Y')
y ahora me sale este regresó:
Incorrect datetime value: '7/8/2010' for function str_to_date
Ver mi actualización - en el futuro, que sería de ayuda si usted fuera más claro acerca de lo que el el problema estaba en el comienzo. Proporcione datos de ejemplo, estructura de tabla y salida esperada. –
Ver mi respuesta actualizada – Mchl
El formato de fecha que proporcioné estaba equivocado. Debería ser '% m /% d /% Y'. También cuando pones fechas en tus consultas, ponlas entre comillas '' (porque de hecho son cadenas) – Mchl