Ответ 1
SELECT DATE(ColumnName) FROM tablename;
Подробнее о функции MySQL DATE().
У меня есть таблица в базе данных MySQL, которая настроена с помощью DATETIME
. Мне нужно SELECT
в этой таблице только по дате и без учета времени.
Как выбрать SELECT
в этой таблице только по дате и в обход времени, даже если для этого конкретного столбца установлено значение DATETIME
?
Теперь это:
2012-01-23 09:24:41
Мне нужно сделать SELECT
только для этого: 2012-01-23
SELECT DATE(ColumnName) FROM tablename;
Подробнее о функции MySQL DATE().
Вы можете использовать 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');"
Вы можете использовать select DATE(time) from appointment_details
только для даты
или
Вы можете использовать select TIME(time) from appointment_details
только для времени
Попробуйте использовать
на сегодня:
SELECT * FROM `tbl_name` where DATE(column_name) = CURDATE()
для выбранной даты:
SELECT * FROM `tbl_name` where DATE(column_name) = DATE('2016-01-14')
В MYSQL у нас есть функция с именем DATE_FORMAT (дата, формат). В вашем случае ваше предложение выбора будет выглядеть так:
SELECT DATE_FORMAT(dateTimeFieldName,"%a%m%Y") as dateFieldName FROM table_name
Для получения дополнительной информации о функциях Mysql DATE и TIME нажмите здесь.
Я пробовал делать 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 и вы не выполняете дневной сбережения, потому что ваше местное время совпадает с местным временем.
Просто вы можете сделать
SELECT DATE(date_field) AS date_field FROM table_name
Йо может попробовать это:
SELECT CURDATE();
Если вы проверите следующее:
SELECT NOW(); SELECT DATE(NOW()); SELECT DATE_FORMAT(NOW(),'%Y-%m-%d');
Вы можете видеть, что это занимает много времени.
Try
SELECT * FROM Profiles WHERE date(DateReg)=$date
где $date находится в yyyy-mm-dd
В качестве альтернативы
SELECT * FROM Profiles WHERE left(DateReg,10)=$date
Приветствия
Select * from table_name where date(datetime)
Используйте DATE_FORMAT
select DATE_FORMAT(date,'%d') from tablename =>Date only
Пример:
select DATE_FORMAT(`date_column`,'%d') from `database_name`.`table_name`;
SELECT DATE_FORMAT(NOW() - INTERVAL FLOOR(RAND() * 14) DAY,'%Y-%m-%d');
Это можно использовать для получения даты в формате "yyyy-mm-dd".
В интересах фактического размещения рабочего решения по этому вопросу:
SELECT ... WHERE `myDateColumn` >= DATE(DATE_FORMAT(NOW(),'%Y-%m-%d'));
Очевидно, что вы можете изменить функцию NOW() на любую нужную дату или переменную.
Пожалуйста, попробуйте этот ответ.
SELECT * FROM 'Yourtable' WHERE date('dateField') = '2018-09-25'
если столбец времени находится на отметке времени, вы получите значение даты из этой отметки времени, используя этот запрос
SELECT DATE(FROM_UNIXTIME(time)) from table