Как выбрать только дату из поля DATETIME в MySQL?

У меня есть таблица в базе данных MySQL, которая настроена с помощью DATETIME. Мне нужно SELECT в этой таблице только по дате и без учета времени.

Как выбрать SELECT в этой таблице только по дате и в обход времени, даже если для этого конкретного столбца установлено значение DATETIME?


пример

Теперь это: 2012-01-23 09:24:41

Мне нужно сделать SELECT только для этого: 2012-01-23

Ответ 1

SELECT DATE(ColumnName) FROM tablename;

Подробнее о функции MySQL DATE().

Ответ 2

Вы можете использовать date_format

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

для часового пояса

sql2 = "SELECT DATE_FORMAT(CONVERT_TZ(CURDATE(),'US/Central','Asia/Karachi'),'%Y-%m-%d');"

Ответ 3

Вы можете использовать select DATE(time) from appointment_details только для даты

или

Вы можете использовать select TIME(time) from appointment_details только для времени

Ответ 4

Попробуйте использовать
на сегодня:

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


для выбранной даты:

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

Ответ 5

В MYSQL у нас есть функция с именем DATE_FORMAT (дата, формат). В вашем случае ваше предложение выбора будет выглядеть так:

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

Для получения дополнительной информации о функциях Mysql DATE и TIME нажмите здесь.

Ответ 6

Я пробовал делать SELECT DATE(ColumnName), однако этот не работает для столбцов TIMESTAMP потому что они хранятся в формате UTC, а дата UTC используется вместо преобразование в локальную дату. Мне нужно было выбрать строки, которые были в определенную дату в моем часовом поясе, поэтому объединить мой ответ на этот другой вопрос с помощью Balaswamy Ваддеман отвечает на этот вопрос, вот что я сделал:

Если вы сохраняете даты как DATETIME

Просто сделайте SELECT DATE(ColumnName)

Если вы сохраняете даты как TIMESTAMP

Загрузите данные часового пояса в MySQL, если вы этого еще не сделали. Для серверов Windows см. Предыдущую ссылку. Для серверов Linux, FreeBSD, Solaris и OS X вы должны:

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

Затем отформатируйте свой запрос следующим образом:

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

Вы также можете поместить это в WHERE часть запроса, как это (но обратите внимание, что индексы в этом столбце не будут работать):

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

(Очевидно, подставьте America/New_York для вашего локального часового пояса.)


Единственное исключение: если ваш часовой пояс GMT и вы не выполняете дневной сбережения, потому что ваше местное время совпадает с местным временем.

Ответ 7

Просто вы можете сделать

SELECT DATE(date_field) AS date_field FROM table_name

Ответ 8

Йо может попробовать это:

SELECT CURDATE();

Если вы проверите следующее:

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

Вы можете видеть, что это занимает много времени.

Ответ 9

Try SELECT * FROM Profiles WHERE date(DateReg)=$date где $date находится в yyyy-mm-dd

В качестве альтернативы SELECT * FROM Profiles WHERE left(DateReg,10)=$date

Приветствия

Ответ 10

Select * from table_name where date(datetime)

Ответ 11

Используйте DATE_FORMAT

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

Пример:

select DATE_FORMAT(`date_column`,'%d') from `database_name`.`table_name`;

Ответ 12

SELECT DATE_FORMAT(NOW() - INTERVAL FLOOR(RAND() * 14) DAY,'%Y-%m-%d');

Это можно использовать для получения даты в формате "yyyy-mm-dd".

Ответ 13

В интересах фактического размещения рабочего решения по этому вопросу:

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

Очевидно, что вы можете изменить функцию NOW() на любую нужную дату или переменную.

Ответ 14

Пожалуйста, попробуйте этот ответ.

SELECT * FROM 'Yourtable' WHERE date('dateField') = '2018-09-25'

Ответ 15

если столбец времени находится на отметке времени, вы получите значение даты из этой отметки времени, используя этот запрос

SELECT DATE(FROM_UNIXTIME(time)) from table