2012-04-30 3 views
0

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

ответ

1

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

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

+0

Спасибо, что мне нужно. В этом случае эффективность не слишком важна, если это можно сделать в одном запросе. – smartbloke

1

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

+0

Невозможно создать просмотры или функции, к сожалению – smartbloke

Смежные вопросы