2008-11-06 9 views
46

Necesito hacer una comparación de fecha en Mysql sin tener en cuenta el componente de tiempo, es decir, tengo que convertir '2008-11-05 14:30:00' en '2008-11-05'Componente de tiempo de franja de Mysql de fecha y hora

Actualmente estoy haciendo esto:

SELECT from_days(to_days(my_date)) 

¿hay una manera correcta de hacer esto?

Respuesta

89

Sí, utilice la función date:

SELECT date(my_date) 
3

En PostgreSQL que utilizan la función TRUNC(), pero no lo veo para MySQL. De mi breve búsqueda en Google, parece que tendrá que emitir su valor DATETIME para que sea solo DATE.

date_col = CAST(NOW() AS DATE) 

Ver http://dev.mysql.com/doc/refman/5.0/en/date-and-time-types.html

+1

'date_trunc() '(no' trunc() ') en realidad * no eliminaría * la parte de tiempo en Postgres. Simplemente lo configuraría a '00: 00: 00', que es algo diferente. –

3

select date(somedate) es el más común.

Si necesita para dar cabida a otros formatos, puede utilizar:

SELECT DATE_FORMAT('2009-10-04 22:23:00', '%Y-%m-%d'); 
+1

El DATE_FORMAT es muy útil para extraer el componente del año solo por ejemplo. Gracias. –

-3

usted podría utilizar ToShortDateString();

+0

¿No es esa una función C#? La pregunta es después de una solución MySQL – andrewsi

+0

Es C# y en realidad no elimina la marca de tiempo: Convierte el valor del objeto DateTime actual en su representación de cadena de fecha corta equivalente. –

1

sólo una forma sencilla de hacerlo date("d F Y",strtotime($row['date'])) donde $row['date'] proviene de la consulta

Cuestiones relacionadas