【问题标题】:Why is my MySQL TIMESTAMPDIFF not working?为什么我的 MySQL TIMESTAMPDIFF 不工作?
【发布时间】:2015-03-25 23:38:43
【问题描述】:

您好,我有一个存储的时间戳“旧时间”,我想获得与当前时间的差异,但它不起作用,也没有抛出任何错误,所以我迷路了。

$timediff = mysql_query(sprintf("SELECT TIMESTAMPDIFF(SECOND, %s, NOW())", GetSQLValueString($oldtime, "text")), $DBName) or die (mysql_error());

$diff = mysql_fetch_assoc($timediff);

echo '<script>console.log("time diff:'.$diff[0].'");</script>';

.$diff. results in "time diff:Array"

.$diff[0]. results in "time diff: "

.$timediff. results in "time diff:Resource id #6"

【问题讨论】:

  • 你得到了什么?请描述一下。
  • 查看编辑,我在更改它的回声时提供了控制台输出
  • 不确定如何或是否可以,但我认为不应批准该编辑,因为最后三行并不完全是代码,只是一个狙击手用我自己的话来说明它的结果
  • 只需重新编辑并重新格式化!为什么不呢?

标签: php mysql timestamp timedelta


【解决方案1】:

mysql_fetch_assoc 默认返回一个按列名索引的数组,而不是列号。

列名实际上是函数字符串,类似于

TIMESTAMPDIFF(table.col1, NOW())

这里更简单的方法是按列号获取,而不是使用 mysql_fetch_row 或 mysql_fetch_array

见: http://php.net/manual/en/function.mysql-fetch-array.php http://php.net/manual/en/function.mysql-fetch-array.php

另一种方法是使用一些数组函数来提取没有名称的元素,请参阅: http://php.net/manual/en/ref.array.php

【讨论】:

    猜你喜欢
    • 2015-07-23
    • 1970-01-01
    • 2021-02-15
    • 2015-08-26
    • 2015-02-06
    • 2016-03-28
    • 1970-01-01
    • 2014-05-17
    • 2017-09-20
    相关资源
    最近更新 更多