Mysql Сравнить два поля даты и времени - PullRequest
37 голосов
/ 29 июня 2009

Я хочу сравнить две даты со временем, я хочу все результаты from tbl where date1 > date2

Select * From temp where mydate > '2009-06-29 04:00:44';

но это просто сравнение дат, а не времени. это дает мне весь набор результатов сегодняшней даты

'2009-06-29 11:08:57'
'2009-06-29 11:14:35'
'2009-06-29 11:12:38'
'2009-06-29 11:37:48'
'2009-06-29 11:52:17'
'2009-06-29 12:12:50'
'2009-06-29 12:13:38'
'2009-06-29 12:19:24'
'2009-06-29 12:27:25'
'2009-06-29 12:28:49'
'2009-06-29 12:35:54'
'2009-06-29 12:36:54'
'2009-06-29 12:49:57'
'2009-06-29 12:58:04'
'2009-06-29 04:13:20'
'2009-06-29 04:56:19'
'2009-06-29 05:00:23'
'2009-06-29 05:04:26'
'2009-06-29 05:08:17'
'2009-06-29 05:26:57'
'2009-06-29 05:29:06'
'2009-06-29 05:32:11'
'2009-06-29 05:52:07'

Заранее спасибо!

Ответы [ 4 ]

61 голосов
/ 29 июня 2009

Запрос, который вы хотите показать в качестве примера:

SELECT * FROM temp WHERE mydate > '2009-06-29 16:00:44';

04: 00: 00 - 4:00, поэтому все отображаемые вами результаты приходят после , что правильно.

Если вы хотите показать все после 4 вечера, вам нужно использовать правильную (24 часа) запись в вашем запросе.

Чтобы сделать вещи немного понятнее, попробуйте это:

SELECT mydate, DATE_FORMAT(mydate, '%r') FROM temp;

Это покажет вам дату и ее 12-часовое время.

12 голосов
/ 29 января 2014

Вы можете использовать следующий SQL для сравнения даты и времени -

Select * From temp where mydate > STR_TO_DATE('2009-06-29 04:00:44', '%Y-%m-%d %H:%i:%s');

Прикрепленный вывод mysql, когда я использовал тот же SQL для таблицы и поля того же типа, что вы упомянули в проблеме -

enter image description here

Должно работать идеально.

4 голосов
/ 29 июня 2009

Ваш запрос, очевидно, вернул все правильные даты, даже с учетом времени.

Если вы все еще не довольны результатами, сделайте снимок DATEDIFF и найдите отрицательные / положительные результаты между двумя датами.

Убедитесь, что столбец mydate относится к типу datetime.

3 голосов
/ 29 июня 2009

Хотите заказать?

Select * From temp where mydate > '2009-06-29 04:00:44' ORDER BY mydate;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...