2013-08-06 7 views
1

Тип данных даты в mySQL имеет формат yyyy-mm-dd. Я хочу, чтобы он хранил дату как dd-mm-yyyy.Изменение внутреннего формата даты MySQL

Все ответы показали, как отображать дату в определенном формате. Однако я хочу изменить формат, в котором MySQL хранит даты.

Есть ли в любом случае я могу добиться этого?

+3

Зачем вам это нужно. Это не имеет никакого смысла. –

+0

Зачем нужно хранить данные? –

ответ

1

Вы не можете изменить формат хранения даты MSQL. Вы можете использовать DATE_FORMAT() для отображения его в вашем формате отображения.

Редактировать как на ваш комментарий: -

INSERT INTO useless_table (id, date) VALUES(
     1, STR_TO_DATE('06/08/2013', '%m/%d/%Y')); 
+0

Я хочу использовать запрос insert и тип ddmmyyyy, а не делать преобразования в yyyymmdd каждый раз, прежде чем вставлять. –

+1

Проверьте, не помогает ли мое редактирование –

+0

Вы проверили ??? –

0

Даты и время хранятся в базе данных SQL во внутреннем формате родной для SQL двигателя, первые 4 байта хранится количество дней с начала эпохи в SQL Server (1 января 1900 года). Второй 4 байта хранит количество миллисекунд после полуночи.

Вам не следует беспокоиться о том, как хранится дата. Вы можете получить дату (или дату/время) в любом формате, который вам нравится (или нужен).

+0

Проблемы возникают при попытке использовать запрос insert с ddmmyyyy. –

+0

Вам нужно отформатировать его на вставке, тогда ... попробуйте следующее: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_str-to-date – BWS

0

Пусть имя столбца время, вы можете использовать следующий SQL

SELECT YEAR(time) as year, MONTH(time) as month, DAY(time) as day FROM table 

Тогда просто сделать, как вы хотите.

1

Вы не можете изменить способ сохранения даты хранилища БД.

Сохраняются в виде ГГГГ-ММ-ДД для того, чтобы использовать lexicographic order для сортировки. Любой другой формат потеряет это свойство, и, следовательно, сервер БД не сможет эффективно сортировать даты.

Как вам уже сказали, вы можете изменить формат даты в запросе SELECT. Если вы действительно действительно хотите сохранить дату в другом формате, вам, вероятно, придется использовать столбцы CHAR(10).

Если вы идете таким образом, вы сможете искать равенство в этом столбце. Но не сортировать по дате. Ни найти дату в заданном диапазоне.

+0

Хм, Это объясняет это. –

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