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


90

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

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

SELECT from_days(to_days(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 в его эквивалентное короткое строковое представление даты.
Низар Б.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.