Как я могу установить вывод now() в MySQL?
Мы хотим запустить автоматические тесты для хранимых процедур и функций MySQL, когда тесты сравнивают фактические и ожидаемые значения.
Проблема в том, что даже если мы запускаем скрипт фикстуры перед каждым тестом, большинство наших подпрограмм могут возвращать разные результаты при одних и тех же входных данных - мы выполняем много работы с датой и временем, на которую опирается now
, (now
это встроенная функция для возврата текущей даты и времени.)
Как мы можем "заморозить" то, что now
возвращается в нашу тестовую базу данных?
Лучшее решение, которое я могу придумать, - это заменить все звонки на now
на вызовы пользовательской функции. В нашей базе данных prod эта пользовательская функция просто вызовет встроенную now
и в нашей базе данных разработчиков он вернет статическую дату.
Есть ли более простой способ, например что-то вроде SET global.CURRENT_TIME = '2015-01-01 00:00:00';
?