2011-01-19 35 views
25

Estoy tratando de obtener la parte de fecha de un campo de fecha y hora. Sé que puedo obtenerlo con date_format, pero eso devuelve una cadena o campo "varchar". ¿Cómo puedo convertir el resultado a la fecha y no como varchar?Consulta para convertir de fecha y hora a fecha mysql

Ésta es mi consulta devolver el varchar:

(Select Date_Format(orders.date_purchased,'%m/%d/%Y')) As Date 

He intentado varias combinaciones de esta pregunta, pero no podía hacer que funcione:

mysql query - format date on output?

Cualquier ayuda se agradece.

Respuesta

36

intenta convertir como FECHA

SELECT CAST(orders.date_purchased AS DATE) AS DATE_PURCHASED 
+0

¡Gracias! Esto es lo que necesitaba. = o) – chupeman

26

Uso del DATE function:

SELECT DATE(orders.date_purchased) AS date 
+2

Este es el mejor responder. – Nathanael

+0

me está dando que "FECHA 'no es un nombre de función incorporado reconocido." – aayushi

3

De cualquier Cybernate o solución OMG potros va a funcionar. El problema fundamental es que la función DATE_FORMAT() devuelve una cadena, no una fecha. Cuando escribió

(Select Date_Format(orders.date_purchased,'%m/%d/%Y')) As Date 

Creo que estabas preguntando esencialmente MySQL para tratar de dar formato a los valores de "date_purchased" de acuerdo a la cadena de formato, y en lugar de llamar a que la columna "date_purchased", lo llaman "fecha". Pero esa columna ya no contendría una fecha, contendría una cadena. (Debido a que Date_Format() devuelve una cadena, no una fecha.)

No creo que sea eso lo que quería hacer, pero eso es lo que estaba haciendo.

No confunda la apariencia de un valor con el valor.

0

sintaxis del date_format:

SELECT date_format(date_born, '%m/%d/%Y') as my_date FROM date_tbl 

    '%W %D %M %Y %T' -> Wednesday 5th May 2004 23:56:25 
    '%a %b %e %Y %H:%i' -> Wed May 5 2004 23:56 
    '%m/%d/%Y %T'  -> 05/05/2004 23:56:25 
    '%d/%m/%Y'   -> 05/05/2004 
    '%m-%d-%y'   -> 04-08-13 
0

veo los muchos tipos de usos, pero me parece que este diseño más útil como una herramienta de referencia:

SELECT DATE_FORMAT('2004-01-20' ,'%Y-%m-01'); 

enter image description here

Cuestiones relacionadas