我有一个日期字段(tinytext),其格式为“dd-mm-yy”,例如07-01-90。使用mysql查询我想将其更改为yyyy-mm-dd日期格式。我尝试了下面的代码,但没有任何反应。
mysql_query("UPDATE Table SET date=STR_TO_DATE('date','%Y,%m,%d')");
答案 0 :(得分:6)
您正在使用正确的函数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");
此外,请考虑切换到推荐的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)
显示 2 数字年份
mysql_query("UPDATE Table SET date=DATE_FORMAT(date,'%y-%m-%d')");
显示 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函数