MySQL的date格式 – 难度插入date

我试图进一步提出一个问题,我昨天问我想知道如何查询不同格式的date。 但现在我正在尝试使用此方法插入(请参阅下面),但是我不能得到它的工作。 我已经检查了手册,但它不是初学者友好的!

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

将date放在单引号中,并将括号(在'yes' )移动到结尾:

 INSERT INTO custorder VALUES ('Kevin', 'yes' , STR_TO_DATE('1-01-2012', '%d-%m-%Y') ) ; ^ ^ ---parenthesis removed--| and added here ------| 

但是你可以使用没有STR_TO_DATE()函数的date,只需使用(Ymd) '20120101''2012-01-01'格式。 检查MySQL文档: date和时间文字

 INSERT INTO custorder VALUES ('Kevin', 'yes', '2012-01-01') ; 

看起来你没有正确地封装你的string。 尝试这个:

 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是否有效,但是,您可能需要将date部分移动到括号中。 如果你能提供确切的错误,我可能会更直接地帮助解决这个问题。

mysql插入查询的date格式是YYYY-MM-DD

例:

 INSERT INTO table_name (date_column) VALUE ('YYYY-MM-DD'); 

自从我遇到这个问题以来,一个附加到以前的答案:

如果你真的想插入类似于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来试用这个版本,它可以工作!