У меня есть таблица Mysql, которая используется для файла журнала в этой таблице, есть поле под названием «log_date». Оно хранит дату в следующем формате (% Y-% m-% d % H:% i.% S). В БД даты выглядят как-то в этом 2013-20-05 00: 00.00. Допустим, сегодняшняя дата - 2013-20-05. И у меня есть файлы журналов с 2013-01-01 по сегодняшний день. Если я выполнить запрос так:Фильтр по дате времени Форматирование MYSQL
SELECT * FROM log_table
WHERE STR_TO_DATE(log_date, '%Y-%m-%d %H:%i.%s') < '2013-05-05 00:00.00'
Это возвращает все строки в БД, включая строки, которые больше 2013-05-05 00: 00.00
И если я повернуть вспять < (менее) к> (больше чем) с запросом, который выглядит следующим образом:
SELECT * FROM log_table
WHERE STR_TO_DATE(log_date, '%Y-%m-%d %H:%i.%s') > '2013-05-05 00:00.00'
затем он возвращает нулевое значение строки. Я думаю, что временная метка является тем, что вызывает проблему, с которой я работал с форматом даты, но не с форматом DateTime. Почему это происходит?
Каков тип данных для 'log_date'? – Kermit