【问题标题】:mySQL - How to change date format from dd-mm-yy to yy-mm-dd?mySQL - 如何将日期格式从 dd-mm-yy 更改为 yy-mm-dd?
【发布时间】:2012-03-24 15:00:07
【问题描述】:

我的数据库中有一些日期格式为 dd-mm-yy 和一些日期格式为 yy-mm-dd

我希望他们都在 yy-mm-dd

它们存储在 VARCHAR 字段中

日期示例如下:

2011-10-19 和 19-10-2011

是否有要运行的查询以更新到任何非此格式的内容?

提前致谢!

【问题讨论】:

  • 您是如何存储日期的?哪种类型的字段?无论如何,看看这个:stackoverflow.com/questions/4259729/…
  • 你怎么知道它们的格式?例如,09-10-11:是 2011 年 10 月 9 日,还是 2009 年 10 月 11 日?
  • 更新了 ruakh 的帖子 :) 大雄干杯 - 看起来很不错
  • 干杯大雄 - 我用那篇文章中的代码做到了 :) 更新用户 SET registration_date = DATE(STR_TO_DATE(registration_date, '%Y-%m-%d')) WHERE DATE(STR_TO_DATE(注册日期,'%d-%m-%Y'));

标签: mysql database date formatting date-format


【解决方案1】:

日期存储为日期,大概你有字符串。

如果它们实际上已经是日期,只需根据需要使用DATE_FORMAT

如果它们是字符串,您最好的选择是将它们更改为实际日期并将日期值存储在新列中。否则,正如托尼所说(+1 托尼!),您将继续有很多问题需要处理。

然后您可以使用STR_TO_DATE 填充它,例如

update tbl set new_date_field =
select STR_TO_DATE(string_date_field,'%y-%m-%d') ` # if string_date_field is '2011-01-01'
WHERE string_date_field RLIKE "^[0-9]{2}-";

一旦你有了一个真实的日期,你可以用DATE_FORMAT(date_field, '%y-%m-%d')显示它

如果您无法添加该字段,唯一的其他选择是进行字符串操作,即
Update table set date_field =
substr(string_date_field,7,2) + '-' + substr(string_date_field,3,2) + '-' + substr(string_date_field,0,2) WHERE string_date_field RLIKE "^[0-9]{2}-";

即使这样,我仍然会推荐一个新领域。

注意:如果您需要在更多步骤中执行此操作,比如说您不能立即更改“日期为字符串”字段的数量,您也可以放入后插入/后更新触发器(mySQL 现在支持) 进行转换(从字符串字段到实际日期字段)。

【讨论】:

  • 确实将日期存储为字符串只是很多工作和错误。
  • 是的,OP后来添加了。
【解决方案2】:

你可以尝试这样的事情(但首先备份你的表!):

UPDATE table SET string_date_field = STR_TO_DATE(string_date_field, "%d-%m-%Y")
WHERE string_date_field RLIKE "^[0-9]{2}-";

RLIKE 是 REGEXP 的同义词,您可以使用它来查找日期为有问题的 %d-%m-%Y 格式的记录。之后您可以更改表,使字段类型为 DATE。此外,如果您的表有大量记录,也许您应该使用连续的自动增量字段(当然前提是存在一个!)以创建较小的记录集供服务器处理。例如:

UPDATE table SET string_date_field = STR_TO_DATE(string_date_field, "%d-%m-%Y")
WHERE ID >= 1000000 AND ID < 2000000 AND string_date_field RLIKE "^[0-9]{2}-";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    • 2021-12-31
    相关资源
    最近更新 更多