mysql更改日期格式

标签 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')");

最佳答案

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

  1. 在您的查询中,format 参数与字符串表达式格式不匹配。你说它是 dd-mm-yy 格式,同时你将 %Y,%m,%d(逗号分隔)传递给 格式 参数。查询将返回“不正确的日期时间值”错误。您应该使用 %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");

此外,考虑切换到推荐的 PDO扩展代替旧的和slowly deprecated mysql 扩展。

关于mysql更改日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9426993/

相关文章:

php - 使用php上传文件时如何设置特定路径

php - 从正则表达式得到错误 'repetition-operator operand invalid'

MySQL表更新

php - 如何在 CodeIgniter View 中显示数据?

mysql - mysql 中的 order by 和其间的随机

php - Laravel - 使用查询生成器命名子查询

mysql select recursive parent id 报错Unknown column in 'where clause'

php - mysql,根据类别的UUID获取产品的总重量

php - 在 codeigniter 中一定时间间隔后减少产品价格

mysql - 在 mysql 数据库中加载图像时出现语法错误