MySQL конвертация даты

Я унаследовал базу данных MySQL, которая (по историческим причинам) содержит поле, в котором хранится дата в виде количества дней с 1900-01-01. Я хочу иметь возможность выбрать версию date_format() этой даты, но не могу придумать, как это сделать.
Есть ли способ манипулирования содержимым столбца, чтобы я мог передать манипулируемое значение в date_format(), чтобы оно распознавалось как действительная дата?
Я понимаю, что есть решение для этого, которое включает в себя выполнение одного запроса, затем манипулирование полем (в PHP), а затем возврат в качестве вторичного запроса - но мне нужно, чтобы это было решение с одним запросом.

2 ответа

Решение

Является ли функция MySql FROM_DAYS() тем, что вы ищете - смотрите здесь документы?

Однако, в зависимости от дизайна вашей базы данных и варианта использования, вы можете рассмотреть возможность добавления столбца с датой (результат FROM_DAYS()), чтобы вы могли выполнять запросы к этому столбцу. Когда вам необходимо применить функцию к столбцу, прежде чем использовать ее в запросе, он должен подать предупреждающий сигнал о том, что эти запросы могут быть совершенно неэффективными для выполнения.

Можете ли вы создавать представления и функции в базе данных? Если это так, я бы создал функцию с запросом, который вы в настоящее время используете для преобразования времени, а затем создайте представление, используя эту функцию, чтобы отобразить время как метку времени. Это повысит вашу эффективность и сделает ваш PHP-код чище:)

Другие вопросы по тегам