За последние три часа:
WHERE column BETWEEN DATE_SUB(NOW(), INTERVAL 3 HOUR)
AND NOW()
За последние семь часов:
WHERE column BETWEEN DATE_SUB(NOW(), INTERVAL 7 HOUR)
AND NOW()
За последние двенадцать часов:
WHERE column BETWEEN DATE_SUB(NOW(), INTERVAL 12 HOUR)
AND NOW()
Если вы хотите указать данных в виде строки, используйте:
WHERE column BETWEEN DATE_SUB(STR_TO_DATE('2010-07-08 07:57:45', '%Y-%m-%d %T'), INTERVAL 3 HOUR)
AND STR_TO_DATE('2010-07-08 07:57:45', '%Y-%m-%d %T')
... хотя, честно говоря, вы могли бы использовать это так же хорошо:
WHERE column BETWEEN STR_TO_DATE('2010-07-08 04:57:45', '%Y-%m-%d %T')
AND STR_TO_DATE('2010-07-08 07:57:45', '%Y-%m-%d %T')
Если это не сработает, то мне интересно, если столбец сохраняя значения как строки/varchar, а не DATETIME.
Ссылка:
Я использовал следующий запрос, но он didnot дать мне правильные результаты $ SQL = «SELECT * FROM' order' WHERE myDateField МЕЖДУ DATE_SUB ("2010-07-08 7:57:45", ИНТЕРВАЛ 3 ЧАСА) AND "2010-07-08 07:57:45" '; – Autolycus
@ user295189: Используйте одиночные, а не двойные кавычки. И если вы используете строку, используйте 'STR_TO_DATE ('2010-07-08 07:57:45', '% Y-% m-% d% T')', чтобы преобразовать строку в DATETIME достоверно –
не работает .. все еще даю мне всего 2 записи с такими же датами и временем -07-08 07:57:45 ' – Autolycus