Как выбрать только дату из поля datetime в MySQL
У меня есть таблица в базе данных mySQL, которая настроена с датой.
Мне нужно SELECT
в этой таблице только DATE и исключая время.
Как сделать SELECT
в этой таблице только по дате и минуя время, даже если для этого столбца задано значение datetime
?
- «Непревзойденная дата: 1302828677828», пытающаяся десериализовать с помощью Gson дату в миллисекундах, полученную с сервера
- как преобразовать строку в дату в mysql?
- Всегда ли полезно хранить время в UTC или это тот случай, когда лучше хранить в местное время?
- Должен ли я использовать classы даты и времени Java или использовать стороннюю библиотеку, такую как Joda Time?
- Как рассчитать разницу во времени в сценарии bash?
Пример:
Теперь это: 2012-01-23 09:24:41
Мне нужно сделать SELECT
только для этого 2012-01-23
- Арифметика даты в сценариях cmd
- В Ruby on Rails, какая разница между DateTime, Timestamp, Time и Date?
- Java getHours (), getMinutes () и getSeconds ()
- Время: Как добраться до следующей пятницы?
- Как получить первый день текущей недели и месяца?
- Android получает дату до 7 дней (одна неделя)
- Swift: как создать отметку времени и формат даты как ISO 8601, RFC 3339, часовой пояс UTC?
- Как использовать DATETIME как DATE в mysql?
select date(ColumnName) from tablename
подробнее о mysql date ()
вы можете использовать date_format
select DATE_FORMAT(date,'%y-%m-%d') from tablename
Вы можете использовать select DATE(time) from appointment_details
только для даты
или
Вы можете использовать select TIME(time) from appointment_details
только для времени
В MYSQL у нас есть функция DATE_FORMAT (дата, формат) . В вашем случае ваш выбор будет выглядеть следующим образом:
SELECT DATE_FORMAT(dateTimeFieldName,"%a%m%Y") as dateFieldName FROM table_name
Для получения дополнительной информации о функциях Mysql DATE и TIME нажмите здесь.
Попробуй использовать
на сегодня:
SELECT * FROM `tbl_name` where DATE(column_name) = CURDATE()
для выбранной даты:
SELECT * FROM `tbl_name` where DATE(column_name) = DATE('2016-01-14')
Я попытался сделать SELECT DATE(ColumnName)
, однако это не работает для столбцов TIMESTAMP
†, потому что они хранятся в формате UTC, а вместо даты перехода к локальной дате используется дата UTC. Мне нужно было выбрать строки, которые были в определенную дату в моем часовом поясе, поэтому, объединив мой ответ на этот другой вопрос с ответом Баласвами Ваддемана на этот вопрос , я это сделал:
Если вы сохраняете даты как 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 * FROM Profiles WHERE date(DateReg)=$date
где $ date находится в yyyy-mm-dd
Альтернативно SELECT * FROM Profiles WHERE left(DateReg,10)=$date
ура
Можно попробовать:
SELECT CURDATE();
Если вы проверите следующее:
SELECT NOW(); SELECT DATE(NOW()); SELECT DATE_FORMAT(NOW(),'%Y-%m-%d');
Вы можете видеть, что это занимает много времени.
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 () на любую дату или переменную, которые вы хотите.