Cómo seleccionar solo la fecha de un campo de fecha y hora en MySQL

Tengo una tabla en mySQL DB que está configurada con datetime.

Necesito SELECT en esta tabla solo por DATE y excluyendo el tiempo.

¿Cómo selecciono en esta tabla por única fecha y omitiendo la hora, incluso si esa columna específica está configurada para datetime ?

Ejemplo:

Ahora lo es: 2012-01-23 09:24:41

Necesito hacer un SELECT solo para este 2012-01-23

select date(ColumnName) from tablename

más sobre la fecha de mysql ()

puedes usar date_format

  select DATE_FORMAT(date,'%y-%m-%d') from tablename 

Puede usar select DATE(time) from appointment_details para fecha solamente

o

Puede usar select TIME(time) from appointment_details por tiempo solamente

En MYSQL tenemos la función llamada DATE_FORMAT (fecha, formato) . En tu caso, tu statement seleccionada será así: –

SELECT DATE_FORMAT(dateTimeFieldName,"%a%m%Y") as dateFieldName FROM table_name

Para obtener más información sobre las funciones de DATE y TIME de Mysql, haga clic aquí.

Tratar de usar
para hoy:

 SELECT * FROM `tbl_name` where DATE(column_name) = CURDATE() 

para la fecha seleccionada:

 SELECT * FROM `tbl_name` where DATE(column_name) = DATE('2016-01-14') 

Intenté hacer una SELECT DATE(ColumnName) , sin embargo, esto no funciona para las columnas TIMESTAMP porque están almacenadas en UTC y se usa la fecha UTC en lugar de convertirla a la fecha local. Necesitaba seleccionar filas que estaban en una fecha específica en mi zona horaria, así que combinando mi respuesta a esta otra pregunta con la respuesta de Balaswamy Vaddeman a esta pregunta , esto es lo que hice:

Si está almacenando fechas como DATETIME

Solo seleccione SELECT DATE(ColumnName)

Si está almacenando fechas como TIMESTAMP

Cargue los datos de la zona horaria en MySQL si aún no lo ha hecho. Para servidores de Windows, vea el enlace anterior. Para los servidores Linux, FreeBSD, Solaris y OS X harías:

 mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql 

A continuación, formatee su consulta de esta manera:

 SELECT DATE(CONVERT_TZ(`ColumnName`, 'UTC', 'America/New_York')) 

También puede poner esto en la parte WHERE de la consulta de esta manera (pero tenga en cuenta que los índices en esa columna no funcionarán):

 SELECT * FROM tableName WHERE DATE(CONVERT_TZ(`ColumnName`, 'UTC', 'America/New_York')) >= '2015-02-04' 

(Obviamente, sustituya America/New_York por su zona horaria local).


La única excepción a esto es si su zona horaria local es GMT y no realiza el horario de verano porque su hora local es la misma que UTC.

Simplemente puedes hacer

 SELECT DATE(date_field) AS date_field FROM table_name 

Pruebe SELECT * FROM Profiles WHERE date(DateReg)=$date donde $ date está en aaaa-mm-dd

Alternativamente, SELECT * FROM Profiles WHERE left(DateReg,10)=$date

Aclamaciones

Yo puedo probar esto:

 SELECT CURDATE(); 

Si revisa lo siguiente:

 SELECT NOW(); SELECT DATE(NOW()); SELECT DATE_FORMAT(NOW(),'%Y-%m-%d'); 

Puedes ver que lleva mucho tiempo.

 Select * from table_name where date(datetime) 

Use DATE_FORMAT

 select DATE_FORMAT(date,'%d') from tablename =>Date only 

ejemplo:

 select DATE_FORMAT(`date_column`,'%d') from `database_name`.`table_name`; 
 SELECT DATE_FORMAT(NOW() - INTERVAL FLOOR(RAND() * 14) DAY,'%Y-%m-%d'); 

Este se puede usar para obtener la fecha en el formato ‘aaaa-mm-dd’.

Con el interés de poner realmente una solución funcional a esta pregunta:

 SELECT ... WHERE `myDateColumn` >= DATE(DATE_FORMAT(NOW(),'%Y-%m-%d')); 

Obviamente, puede cambiar la función NOW () a cualquier fecha o variable que desee.