【问题标题】:Convert date stored as VARCHAR in MYSQL to MYSQL Compatible Date [duplicate]将MYSQL中存储为VARCHAR的日期转换为MYSQL兼容日期[重复]
【发布时间】:2015-02-26 19:52:49
【问题描述】:

我有一个每个月都会收到的数据库,我只需通过 CSV 将其导入 MYSQL。我不担心保留任何旧数据库条目,所以我只需每月用新条目覆盖旧数据库。

我希望能够按月对数据库进行排序,但是我目前需要将日期字段导入为 VARCHAR,否则可能不得不手动转换大量条目以适应 MYSQL 日期字段的格式。

我想获取存储在“到期日期”字段中的条目,并能够运行一个查询,将它们转换为 MYSQL 日期格式,然后将它们写入一个名为“Expiration_Converted”的新列,以便我可以然后运行日期函数来显示一个月、一年等的所有日期。

我知道 MYSQL 中的 STR_TO_DATE 函数,但是我不太确定如何实现它。我正在用 PHP 编写所有内容。

任何建议将不胜感激。

谢谢!

【问题讨论】:

  • 尝试编辑问题并显示需要转换的日期示例。
  • 我不知道上面提到的副本实际上是这个问题的副本。我想如果你想要一个 PHP 解决方案,但可能有一个简单的 UPDATE 查询在这里运行来解决这个问题。 OP 应尝试使用您尝试更改的数据格式的具体示例以及已尝试但未按预期工作的查询来打开一个新问题。

标签: php mysql str-to-date


【解决方案1】:

试试这个。

当我从文本字段中获取值并需要转换为 MySQL DATE 格式时,我仍在我的 Web 应用程序中使用此脚本:

$format = '/^([0-9]{2})\/([0-9]{2})\/([0-9]{4})$/';
    if ($_date != null && preg_match($format, $_date, $parts)) {
        $date = date_create($parts[3].'-'.$parts[2].'-'.$parts[1]);
        $final_formated = date_format($date, "Y-m-d");
        return $final_formated;
    }

PS:$_date 变量接收一个日期字符串。

运行此脚本后,我可以将日期存储在数据库中。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-10
    • 1970-01-01
    • 2015-04-27
    • 1970-01-01
    • 1970-01-01
    • 2010-12-18
    • 1970-01-01
    • 2016-08-12
    相关资源
    最近更新 更多