我有一个日期字段(tinytext),格式为“dd-mm-yy”,例如07-01-90。使用mysql查询我想将其更改为yyyy-mm-dd日期格式。我尝试了下面的代码,但没有任何反应。mysql更改日期格式
mysql_query("UPDATE Table SET date=STR_TO_DATE('date','%Y,%m,%d')");
我有一个日期字段(tinytext),格式为“dd-mm-yy”,例如07-01-90。使用mysql查询我想将其更改为yyyy-mm-dd日期格式。我尝试了下面的代码,但没有任何反应。mysql更改日期格式
mysql_query("UPDATE Table SET date=STR_TO_DATE('date','%Y,%m,%d')");
您使用的是正确的功能STR_TO_DATE(str,format)
要达到的目标,但你妈王两个错误:
format
参数不匹配的字符串表达式格式。你说它是dd-mm-yy
格式,而你通过%Y,%m,%d
(逗号分隔)到format
的说法。该查询将返回“错误的日期时间值”错误。你应该使用%d-%m-%Y
。所以,总结:
mysql_query("UPDATE `Table` SET `date` = STR_TO_DATE(`date`, '%d-%m-%Y')");
mysql_query("ALTER TABLE `Table` CHANGE COLUMN `date` `date` DATE");
此外,考虑到位老slowly deprecatedmysql
扩展切换到推荐PDO扩展。
如果您使用的PHP my_sql,您可以使用date功能
要显示位数的年份
mysql_query("UPDATE Table SET date=DATE_FORMAT(date,'%y-%m-%d')");
要显示位年份
mysql_query("UPDATE Table SET date=DATE_FORMAT(date,'%Y-%m-%d')");
与DATE_FORMAT()功能试试吧。
mysql_query("UPDATE Table SET date=DATE_FORMAT(date,'%Y,%m,%d')");
我说你必须这样做:
UPDATE table_name SET date = DATE_FORMAT('date', %Y-%m-%d);
错误在查询
是STR_TO_DATE(日期, '%Y-%间%d')
mysql_query("UPDATE Table SET date=STR_TO_DATE(date,'%Y-%m-%d')");
试试这个:
INSERT INTO table(date_field) VALUES(STR_TO_DATE('December 8, 2010','%M %d,%Y'));
尝试用['DATE_FORMAT()'](http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html #function_date-format) – diEcho 2012-02-24 07:32:47