mysql中如何将长日期格式转换为短日期格式

mysql中如何将长日期格式转换为短日期格式,mysql,date,Mysql,Date,我想将'01-Dec-2015'日期转换为'2015-12-01'。 我如何在mysql中做到这一点 当我执行查询时:- SET SQL_SAFE_UPDATES=0; UPDATE biometric_date SET att_date = STR_TO_DATE(att_date, '%d/%m/%Y'); 它向我展示了一种错误 Error Code: 1411. Incorrect datetime value: '01-Dec-2015' for function str_to_dat

我想将
'01-Dec-2015'
日期转换为
'2015-12-01'
。 我如何在mysql中做到这一点

当我执行查询时:-

SET SQL_SAFE_UPDATES=0;
UPDATE biometric_date
SET att_date = STR_TO_DATE(att_date, '%d/%m/%Y');
它向我展示了一种错误

Error Code: 1411. Incorrect datetime value: '01-Dec-2015' for function str_to_date

请帮帮我你应该这样做:

mysql> select str_to_date('01-Dec-2015','%d-%M-%Y');
+---------------------------------------+
| str_to_date('01-Dec-2015','%d-%M-%Y') |
+---------------------------------------+
| 2015-12-01                            |
+---------------------------------------+
1 row in set (0,01 sec)

检查您的
附件日期
。这可能不是必需的格式

你也可以使用


只需在
STR\u TO\u DATE()
函数中将current格式作为第二个参数:

UPDATE date_table t SET att_date = STR_TO_DATE(t.att_date,'%d-%M-%Y');

第一:如果要将日期值用作日期,请永远不要将其存储为字符串。数据库中没有“格式”,它只在您希望显示数据时起作用。一定要阅读手册(这就是他们写手册的原因):
STR\u TO\u DATE
是你的朋友。第二:格式化您与我们共享的代码。第三:阅读并解释错误信息,在发布问题之前,使用你最喜欢的搜索引擎进行研究。这个问题显然是
为什么这个代码不起作用的原因的候选者。进一步参考:@shyarryg接受答案或自己撰写答案并接受,以说明您的问题已为未来读者解决,这被认为是一种良好的做法。因为我注意到你的接受率很低(0接受/15个问题),我建议你也检查一下!
UPDATE biometric_date SET att_date = STR_TO_DATE('01-Dec-2015','%d-%M-%Y')
UPDATE date_table t SET att_date = STR_TO_DATE(t.att_date,'%d-%M-%Y');