mysql更改日期格式

时间:2012-02-24 07:31:16

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

7 个答案:

答案 0 :(得分:6)

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

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

    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扩展名。

答案 1 :(得分:5)

查询错误

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

mysql_query("UPDATE Table SET date=STR_TO_DATE(date,'%Y-%m-%d')");

答案 2 :(得分:2)

试试这个:

INSERT INTO table(date_field) VALUES(STR_TO_DATE('December 8, 2010','%M %d,%Y'));

答案 3 :(得分:1)

  1. 显示 2 数字年份

    mysql_query("UPDATE Table SET date=DATE_FORMAT(date,'%y-%m-%d')");

  2. 显示 4 数字年份

    mysql_query("UPDATE Table SET date=DATE_FORMAT(date,'%Y-%m-%d')");

答案 4 :(得分:1)

使用DATE_FORMAT()功能尝试。

 mysql_query("UPDATE Table SET date=DATE_FORMAT(date,'%Y,%m,%d')");

答案 5 :(得分:1)

我要说你必须这样做:

UPDATE table_name SET date = DATE_FORMAT('date', %Y-%m-%d);

答案 6 :(得分:0)

如果您在php中使用mysql,则可以使用date函数