【问题标题】:Convert the date in the database [closed]转换数据库中的日期[关闭]
【发布时间】:2017-04-27 15:46:14
【问题描述】:

我有一个您转换为 WordPress 的数据库 旧数据库中的历史记录 (1472877023) 和新的 (2014-05-16 18:49:52) 我做了这段代码,但它不起作用

$Sql = mysql_query("SELECT * FROM no620_content3 ");
while ($row= mysql_fetch_array($Sql)) {
    $dates = date("m-d-Y h:g:i ",$row['date_time']);
    $arid=$row['id'];
    $query = "UPDATE wp_posts SET ' post_date' = '$dates' WHERE ID = '$arid' ";
    mysql_query($query);
}

【问题讨论】:

  • 你的字段类型在数据库中设置正确吗?如果你正在传递一个日期时间并且你的字段设置为 int 类型,它不会被更新。
  • edit 按钮位于问题的左下角,在标签下方。 cmets 中的代码非常难以阅读。
  • mysql 将日期时间存储为 YYYY-mm-dd 00:00:00,而不是您所拥有的。
  • 然后SET ' post_date' 仅此一项就失败了;无效的标识符限定符(和空格)。 mysql_error() 会告诉你的。
  • stop using mysql_* functions These extensions 已在 PHP 7 中被删除。了解PDO 和 @987654326 的 prepared 语句@ 并考虑使用 PDO,it's really pretty easy

标签: php mysql date


【解决方案1】:

没有必要为此循环执行一堆查询。您可以通过一个查询来完成。

UPDATE no620_content3 SET post_date = FROM_UNIXTIME(date_time)

【讨论】:

  • 这是2016年的结果
  • 我要2014-05-16 18:49:52
  • 1472877023 不是 2014-05-16 18:49:52。
  • 我知道这是一个例子输出变成了所有2016年的数据
  • 输出取决于输入。如果您有 2016 年的时间戳,您将获得 2016 年的日期时间值。
【解决方案2】:

您的日期时间格式错误:

$dates = date("m-d-Y h:g:i ",$row['date_time']);

要获得此 2014-05-16 18:49:52,您需要将其更改为:

$dates = date("Y-m-d H:i:s ",$row['date_time']);

也考虑使用 DateTime 类。并开始使用 PDO,因为 mysql_ 命令在所有受支持的 PHP 版本中都已弃用和删除。

http://php.net/manual/en/class.pdo.php

http://php.net/manual/en/class.datetime.php

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多