У меня есть два различных среды разработки, которая является MySQL 5.6 & Maria DB 10,0разница Maria DB/MySQL на сравнении TimeStamp
Я использую WHERE запроса, как time>="userInputBeginTime"
ограничить минимальную дату данных.
К сожалению, передняя сторона не указала неверную информацию о дате (в моем случае ожидаемый ввод - это строка даты, отформатированная как «yyyy-MM-dd», но реальный вход был «Недействительная дата», которая из-за ошибки javascript)
И тогда я нашел разницу между MySQL & Maria DB
в MySQL:
SELECT NOW() > "Invalid Date" test;
+-----------+
| test |
+-----------+
| 0 |
+-----------+
в Maria DB:
SELECT NOW() > "Invalid Date" test;
+-----------+
| test |
+-----------+
| 1 |
+-----------+
Это различие напрямую связано с тем, что MySQL ничего не вернул, и Мария БД вернула все.
Я думаю, может быть, они используют различные методы для сравнения
Моя временное решение использует SQL как этот
SELECT * FROM table_name
WHERE
NOT ISNULL(CONVERT("userInputBeginTime",datetime))
AND time >= "userInputBeginTime"
, чтобы заставить Maria DB возвращения ничего, когда неверный ввод был обнаружен.
Я хотел бы знать, есть ли лучшее решение?
С наилучшими пожеланиями
'SELECT @@ sql_mode;' на обоих серверах. Соответствуют ли значения? –
Привет, спасибо. @ Michael-sqlbot Оба они возвращаются + ------------ + | @@ sql_mode | + ------------ + | | + ------------ + Оба они установлены с использованием конфигурации по умолчанию –