【问题标题】:Fixing old MySQL date field mistake修复旧的 MySQL 日期字段错误
【发布时间】:2023-03-29 05:52:01
【问题描述】:

我的表中有一个日期字段,用于将表单中的日期存储在 Weekday、Day Month、Year 字符串中。

示例:2010 年 11 月 2 日,星期三

该字段也是一个 varchar。

我可以使用 php 脚本遍历整个表以将日期转换为 mysql 日期格式或使用 SQL 查询执行此操作吗?

我不确定我是否可以执行某些统计报告,这些报告涉及以我现在的格式挑选某些日期和日期范围。我有哪些选择?

【问题讨论】:

  • 看起来很有希望,将在测试数据库上循环它,看看结果如何。谢谢!
  • 略短:codepad.org/3u5MGpC8 如果日期格式一致,应该可以工作。我怀疑正则表达式可能更“干净”,但它们并不是我的强项。

标签: php mysql datetime date


【解决方案1】:

无需涉及 PHP。可以直接在MySQL中完成:

ALTER TABLE yourtable ADD fixeddate date;
UPDATE yourtable SET fixeddate=STR_TO_DATE(bad_date_field, '%W, %d, %M %Y');

相关文档在这里:http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_str-to-date

【讨论】:

    【解决方案2】:

    PHP 有一个名为 DateTime 的内置类。这是一段可以帮助您入门的 sn-p 代码。

    $date = DateTime::createFromFormat('l, d, F Y', 'Wednesday, 02, November 2010');
    echo $date->format('Y-m-d');
    

    你可以在http://au.php.net/manual/en/book.datetime.php找到更多关于这个课程的信息

    【讨论】:

      猜你喜欢
      • 2018-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-26
      • 1970-01-01
      • 2016-04-06
      • 1970-01-01
      • 2016-09-30
      相关资源
      最近更新 更多