2013-11-17 7 views
1

формат даты в mySQL имеет тип (yyyy-mm-dd), теперь я пытаюсь изменить его (dd-mm-yyyy). Я получил пользователь таблицыmySQL как изменить формат даты

CREATE TABLE USER 
(
    USER_ID INTEGER AUTO_INCREMENT NOT NULL PRIMARY KEY, 
    DOB DATE, 
); 

так, когда я вставить значение в том, что:

INSERT INTO USER(DOB) VALUES(DATE_FORMAT('13-07-1990','%d,%m,%Y)); 

однако, он не работает. Он замечает, что я должен использовать 1990-07-13 вместо «13 -07-1990». , пожалуйста, помогите мне сделать это. Благодарю.

+0

вы можете сохранить его как текст в VARCHAR –

+0

Почему? Что не так с использованием формата «YYYY-MM-DD»? –

+0

Этот формат принят в качестве стандарта. Это похоже на 'yyyy-mm-dd-hh-ii-ss'. Как вы можете видеть, начинается с лет-месяцев-дней-часов-минут-секунд, что очень легко запомнить. –

ответ

3

Стандартный формат ANSI SQL для даты: YYYY-MM-DD HH:MM:SS. Легче записать дату в этом формате для вставки в базу данных.

Чтобы сохранить дату в формате, который вы используете (MM-DD-YYYY), вам необходимо использовать функцию STR_TO_DATE, которая позволяет вам преобразовать строку в дату. Синтаксис этой функции:

STR_TO_DATE(str, format)

спецификаторы для формата можно найти here.

Для вашего INSERT заявления, вы должны использовать:

INSERT INTO `user` (`dob`) VALUES 
(STR_TO_DATE('13-07-1990','%d-%m-%Y')) 
+0

HI, когда я использовал запрос выше, он появился как 13 июля 1990 года 00: 00: 00 + 0000, я использовал% m вместо% M, почему он построен так? Пожалуйста, помогите мне, спасибо –

+0

@KucKu Вы пытаетесь вернуть эту дату где-нибудь? – Kermit

+0

уверен, я тестирую его по этой ссылке, посмотрите на это [SQL TEST] (http://www.sqlfiddle.com/#!2/2d3f2/12) –

0

DATE_FORMAT используется только для сохранения даты в VARCHAR полях с нестандартными форматами или извлекать их из БД в нестандартном формате. Вы не можете сохранить что-то в поле типа DATE в любом формате, кроме ГГГГ-ММ-ДД.

-1

FROM DOCS: Тип DATE используется для значений с частью даты, но без временной части. MySQL извлекает и отображает значения DATE в формате «YYYY-MM-DD». Поддерживаемый диапазон - от «1000-01-01» до «9999-12-31».

My Way будет немного отличаться. Я бы вычислил свою дату в php и передал желаемый формат в запрос, а не вычислял его в запросе.

$your_date= "2010-03-21"; 
$desired_format = date("d-m-Y", strtotime($your_date));//returns 21-03-2010 
$desired_format = date("m-d-Y", strtotime($your_date));//returns 03-21-2010 

с помощью StrToTime и date функцию, Вы можете преобразовать дату в любой формат вы хотите

+0

Вы не можете предположить, что OP использует серверные скрипты. – Kermit

+0

@FreshPrinceOfSO: он помечен php –

+0

Моя ошибка. Я все равно должен был бы утверждать, что преобразование даты на стороне приложения не только неэффективно, функции базы данных специально разработаны для обработки конверсий. – Kermit

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