2012-09-09 335 views
54

Estoy almacenando un campo DATETIME en una Tabla. Después de almacenar el valor de su vendrá como 2012-09-09 06:57:12.Cómo separar FECHA y HORA desde DATETIME en MySQL

Para almacenar estoy usando la sintaxis:

date("Y-m-d H:i:s"); 

Ahora mi pregunta es, al recuperar los datos, ¿Cómo se puede obtener tanto fecha y hora separada, utilizando la única consulta MySQL.

Fecha como 2012-09-09 y tiempo como 06:57:12.

+0

probablemente usted está buscando '' DATE_FORMAT' y no date' y ' tiempo', ya que le dará la fecha por defecto si se busca el tiempo y el tiempo por defecto si se busca la fecha, véase mi respuesta a continuación. –

Respuesta

90

Puede lograr que el uso de DATE_FORMAT() (haga clic en el enlace para más otros formatos)

SELECT DATE_FORMAT(colName, '%Y-%m-%d') DATEONLY, 
     DATE_FORMAT(colName,'%H:%i:%s') TIMEONLY 

SQLFiddle Demo

+0

Hola, ¿cómo obtener el valor? ¿Puedo usar 'echo DATEONLY' para la fecha de impresión y' echo TIMEONLY' para imprimir la hora? ¿¿O que?? –

+0

@MissRosy sí, puede usar su alias (por ejemplo, * DATEONLY y TIMEONLY *) para obtener los valores que desee. –

+2

@MissRosy [haga clic en el enlace para la demostración] (http://sqlfiddle.com/#!2/d41d8/1853) –

13

Probar:

SELECT DATE(`date_time_field`) AS date_part, TIME(`date_time_field`) AS time_part FROM `your_table` 
+0

esto no va a conseguir el '' tiempo' date' y sólo como lo que el usuario está pidiendo. Dará la fecha y hora completas con sus valores predeterminados. [VENDER ESTE ENLACE] (http://sqlfiddle.com/#!2/d41d8/1845) –

+1

generará 'Septiembre, 09 2012 00: 00: 00-0400' para * FECHA * y' Enero, 01 1970 03 : 20: 38-0500' durante * TIME * –

+2

bien, según la consulta da 2012-09-09 como date_part y 06:57:12 como parte de tiempo en mysql –

30

por la documentación de MySQL, la La función DATE() extraerá la parte de fecha de un campo de fecha y hora, y TIME() para la porción de tiempo. por lo que me gustaría probar:

select DATE(dateTimeFeild) as Date, TIME(dateTimeFeild) as Time, col2, col3, FROM Table1 ... 
-3

Para uso exclusivo fecha
date("Y-m-d");

y por sólo el uso del tiempo
date("H:i:s");

+4

oye tu dando una solución de php no sql :) – maq

Cuestiones relacionadas