Componente de tiempo de eliminación de mysql de datetime

90

Necesito hacer una comparación de fechas en Mysql sin tener en cuenta el componente de tiempo, es decir, necesito convertir '2008-11-05 14:30:00' a '2008-11-05'

Actualmente estoy haciendo esto:

SELECT from_days(to_days(my_date))

¿Existe una forma adecuada de hacer esto?

abarax
fuente

Respuestas:

160

Sí, use la función de fecha :

SELECT date(my_date)
Robert Gamble
fuente
14

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

Si necesita adaptarse a otros formatos, puede utilizar:

SELECT DATE_FORMAT(your_date, '%Y-%m-%d');
Comunidad
fuente
2
DATE_FORMAT es muy útil para extraer el componente de año solo, por ejemplo. Gracias.
Mario Awad
3

En PostgreSQL, usa la función TRUNC (), pero no la veo para MySQL. De mi breve búsqueda en Google, parece que necesitará enviar 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

Andy Lester
fuente
1
date_trunc()(no trunc()) en realidad no eliminaría la parte de tiempo en Postgres. Simplemente lo establecería en 00:00:00algo diferente.
a_horse_with_no_name
0

Solo una forma sencilla de hacerlo de date("d F Y",strtotime($row['date']))donde $row['date']proviene su consulta

Rajeev Kumar
fuente
-5

Podrías usar ToShortDateString();

Jupirao Bolado
fuente
¿No es una función de C #? La pregunta es después de una solución MySQL
andrewsi
Es C # y en realidad no elimina la marca de tiempo: convierte el valor del objeto DateTime actual a su representación de cadena de fecha corta equivalente.
Nizar B.