mysql更改日期格式

mus*_*afa 3 mysql

我有一个日期字段(tinytext),其格式为"dd-mm-yy",例如07-01-90.使用mysql查询我想将其更改为yyyy-mm-dd日期格式.我尝试了下面的代码,但没有任何反应.

mysql_query("UPDATE Table SET date=STR_TO_DATE('date','%Y,%m,%d')");
Run Code Online (Sandbox Code Playgroud)

Taz*_*Taz 6

你正在使用正确的函数STR_TO_DATE(str,format)来实现目标,但是你犯了两个错误:

  1. 在您的查询中,format参数与字符串表达式格式不匹配.dd-mm-yy当你把%Y,%m,%d(逗号分隔)传递给format参数时,你说它是格式的.查询将返回"不正确的日期时间值"错误.你应该用%d-%m-%Y.
  2. 通过设置传递的值的不同类型,您无法动态更改列的数据类型.您必须先更新值,然后更改列的数据类型.

所以,总结一下:

mysql_query("UPDATE `Table` SET `date` = STR_TO_DATE(`date`, '%d-%m-%Y')");
mysql_query("ALTER TABLE `Table` CHANGE COLUMN `date` `date` DATE");
Run Code Online (Sandbox Code Playgroud)

此外,请考虑切换到建议的PDO扩展,以代替旧的和缓慢弃用的 mysql扩展.


Nav*_*mar 5

您的查询出错

是STR_TO_DATE(日期,'%Y-%m-%d')

mysql_query("UPDATE Table SET date=STR_TO_DATE(date,'%Y-%m-%d')");
Run Code Online (Sandbox Code Playgroud)