Вопрос по mysql – Mysql Сравнить два поля даты и времени

35

Я хочу сравнить две даты со временем, я хочу все результаты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 часа дня 16:00:00 :) 4 часа ночи 04:00:00. Jeremy Smyth
2009-06-29 04: 00: 44 ' это 4 вечера, поэтому я не хочу 11 утра записи. могу я получить их MySQL DBA
Хм ... У вас нет ничего видимого до этого. Похоже, вы 'предлагаете' 2009-06-29 11: 08: 57 ' предшествует "2009-06-29 04: 00: 44". 4 утра до 11 утра, и поэтому вы видите, что 11 утра больше 4 утра. Опять я что-то упустил? Jeremy Smyth
Там нет никакого результата, который меньше, чем «2009-06-29 04: 00: 44», так что, похоже, ваш код работает, или я что-то упустил? Jeremy Smyth
Я хочу, чтобы эти даты были выходными, а не до этого '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" MySQL DBA

Ваш Ответ

4   ответа
58

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

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

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

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

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

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

3

Select * From temp where mydate > '2009-06-29 04:00:44' ORDER BY mydate;
нет, я хочу только дату и время после "2009-06-29 04: 00: 44" MySQL DBA
Это то, что у тебя есть.
Время, которое вы дали, - 4 часа утра.
нет, я получаю весь набор результатов для текущей даты не после даты, которую я указал для ex: - время, которое я дал, - 4 вечера, и я получаю записи 11 утра в этом.
Попробуйте & amp; выберите * From temp, где mydate & gt; "2009-06-29 16: 00: 44"; "
4

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

Убедитесь, что вашmydate столбецdatetime тип.

12

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

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

STR_TO_DATE, спасибо !!!
Brilliant. Mysql сравнивает строку вместо даты! Я буду помнить это с этого момента. Отличный ответ, проголосовал!

Похожие вопросы