Форматы данных MySQL - сложность Вставка даты
Я пытаюсь задать вопрос, который я задал вчера, где я хотел знать, как запросить дату в другом формате. Но теперь я пытаюсь сделать вставку с помощью этого метода (см. Ниже), но я не могу заставить его работать. Я проверил руководство, но он не дружит с новичком!
INSERT INTO custorder VALUES ('Kevin','yes'), STR_TO_DATE('1-01-2012', '%d-%m-%Y');
Ответы
Ответ 1
Поместите дату в одинарные кавычки и переместите скобки (после 'yes'
) до конца:
INSERT INTO custorder
VALUES ('Kevin', 'yes' , STR_TO_DATE('1-01-2012', '%d-%m-%Y') ) ;
^ ^
---parenthesis removed--| and added here ------|
Но вы всегда можете использовать даты без функции STR_TO_DATE()
, просто используйте формат (Y-m-d) '20120101'
или '2012-01-01'
. Проверьте документы MySQL: Литералы даты и времени
INSERT INTO custorder
VALUES ('Kevin', 'yes', '2012-01-01') ;
Ответ 2
Похоже, что вы не инкапсулировали свою строку должным образом. Попробуйте следующее:
INSERT INTO custorder VALUES ('Kevin','yes'), STR_TO_DATE('1-01-2012', '%d-%m-%Y');
В качестве альтернативы вы можете сделать следующее:
INSERT INTO custorder VALUES ('Kevin','yes'), '2012-01-01';
Я не уверен, что указанный выше SQL действителен, и вы можете перенести часть даты в скобки. Если вы можете предоставить точную ошибку, которую вы получаете, я мог бы более непосредственно помочь с этой проблемой.
Ответ 3
Формат даты для запроса вставки mysql: YYYY-MM-DD
Пример:
INSERT INTO table_name (date_column) VALUE ('YYYY-MM-DD');
Ответ 4
Дополнение к предыдущим ответам, так как я столкнулся с этой проблемой:
Если вы действительно хотите вставить что-то вроде 24-May-2005
в столбец DATE, вы можете сделать что-то вроде этого:
INSERT INTO someTable(Empid,Date_Joined)
VALUES
('S710',STR_TO_DATE('24-May-2005', '%d-%M-%Y'));
В приведенном выше запросе обратите внимание, что если он May
(то есть: месяц в буквах), формат должен быть %M
.
ПРИМЕЧАНИЕ. Я пробовал это с последней версией MySQL версии 8.0 и работает!
Ответ 5
При использовании строковой переменной в PHP, содержащей дату, переменная должна быть заключена в одинарные кавычки:
$NEW_DATE = '1997-07-15';
$sql = "INSERT INTO tbl (NEW_DATE, ...) VALUES ('$NEW_DATE', ...)";