Подтвердить что ты не робот

Форматы данных MySQL - сложность Вставка даты

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

INSERT INTO custorder VALUES ('Kevin','yes'), STR_TO_DATE('1-01-2012', '%d-%m-%Y');
4b9b3361

Ответ 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', ...)";