Mysql удаляет компонент времени из datetime

90

Мне нужно выполнить сравнение даты в Mysql без учета компонента времени, т.е. мне нужно преобразовать «2008-11-05 14:30:00» в «2008-11-05»

В настоящее время я делаю это:

SELECT from_days(to_days(my_date))

Есть ли правильный способ сделать это?

абаракс
источник

Ответы:

160

Да, используйте функцию даты :

SELECT date(my_date)
Роберт Гэмбл
источник
14

select date(somedate) самый распространенный.

Если вам нужно приспособить другие форматы, вы можете использовать:

SELECT DATE_FORMAT(your_date, '%Y-%m-%d');
Сообщество
источник
2
DATE_FORMAT очень полезен, например, для извлечения компонента года. Спасибо.
Марио Авад,
3

В PostgreSQL вы используете функцию TRUNC (), но я не вижу ее для MySQL. Судя по моему краткому поиску в Google, похоже, что вам нужно указать значение DATETIME, чтобы оно было просто DATE.

date_col = CAST(NOW() AS DATE)

См. Http://dev.mysql.com/doc/refman/5.0/en/date-and-time-types.html

Энди Лестер
источник
1
date_trunc()(не trunc()) фактически не удалял бы часть времени в Postgres. Он просто установил бы его, 00:00:00что-то другое.
a_horse_with_no_name
0

Просто простой способ сделать это , date("d F Y",strtotime($row['date']))когда $row['date']приходит из вашего запроса

Раджив Кумар
источник
-5

Вы могли бы использовать ToShortDateString();

Жупирао Боладо
источник
Разве это не функция C #? Вопрос после решения MySQL
Эндрюси
Это C #, и на самом деле он не удаляет метку времени: преобразует значение текущего объекта DateTime в его эквивалентное короткое строковое представление даты.
Низар Б.