2012-01-31 11 views
8

¿Es posible formatear un campo de fecha en una consulta SELECCIONAR *? Quiero obtener todas las columnas de mi tabla, pero necesito un formato diferente de la fecha.Formato de fecha en SELECCIONAR * consulta

Algo así como:

SELECT *, FORMATDATE(date,'%m-%d-%y') AS date FROM my_table; 

o tengo que procesarlo en php después de la consulta?

+0

¿Has probado esto? –

+1

Google es tu amigo: http://www.w3schools.com/sql/func_date_format.asp – cubetwo1729

+0

@ cubetwo1729: w3schools tiene algunas cosas correctas pero también muchas totalmente erróneas. Ejemplo es la restricción [CHECK] (http://www.w3schools.com/sql/sql_check.asp) que no funciona en absoluto en MySQL ... –

Respuesta

17

Uso DATE_FORMAT:

SELECT *, DATE_FORMAT(date, "%m-%d-%y") AS date FROM my_table; 
+2

Y2K policial aquí. "% m-% d-% Y" (% Y -> año de 4 dígitos,% y -> año de 2 dígitos) es muy probable que se prefiera si es posible. –

+0

¡Estaba cerca de mi código! ¿Hay alguna forma de hacerlo sin crear un nuevo campo en el resultado? – PGrau

+2

@PGrau ¿quiere decir que no desea devolver el campo de fecha así como el campo de fecha formateada? Luego simplemente elimine el campo de fecha original de su SELECCIONAR. 'SELECT DATE_FORMAT (date,"% m-% d-% y ") AS 'date', col1, col2, col3 FROM ...' –

0

Si está escribiendo aplicación que contiene diferentes zonas horarias y formatea una mejor práctica se utilizar la marca de tiempo de UNIX almacenada en el campo int (8); de lo contrario, puede formatear los campos de fecha en las consultas.

1
select DATE_FORMAT(your_date_field_name,'%m-%d-%y') AS whatever FROM your_table_name_here; 

el resultado es algo como esto

09-22-11

en contraposición a esta

2011-02-02 15:42:51

0

puede poner el nombre de la columna detrás de date_format. de esta manera:

$rs = mysql_query("select blablabla,DATE_FORMAT(name_column, '%d-%b-%y | %H:%i')name_column,DATE_FORMAT(name_column2, '%d-%b-%y | %H:%i')as name_column2 from db ORDER BY id DESC limit $offset,$rows"); 

o puede poner "como" sí, se debe seleccionar uno por uno. es trabajo !!!!