【问题标题】:SQL days since DATEDIFF() [duplicate]自 DATEDIFF() 以来的 SQL 天数 [重复]
【发布时间】:2013-12-04 21:17:09
【问题描述】:

我正在计算发布帖子后的天数。 SQL 将日期和时间保存在表pins 的列time 中。格式为2013-11-20 10:36:01。

我已经在http://www.w3schools.com/sql/func_date_format.asp阅读了如何做到这一点

并想出了以下代码:

<?php 
$dayssince = mysql_query("SELECT DATEDIFF(day,'CURDATE()','$pinDetails->time') AS DiffDate     FROM pins WHERE id ='$pinDetails->id'");
?>
<?php echo $dayssince; ?>

$pinDetails-&gt;time 是数据库中的日期戳。

但是,什么都没有显示,甚至没有错误号。

编辑:

我使用此代码开始工作:

$result = mysql_query("SELECT DATEDIFF(CURDATE(), '$pinDetails->time')");
$dayssince = mysql_result($result, 0);

【问题讨论】:

  • 我先在 Stack 上搜索。我什至把这个问题编辑成我自己的“这个问题可能已经在这里有了答案”,但是它们是不同的,因为我使用的是变量而不是数字,并且 CURDATE() 不起作用。
  • 服务器版本:5.0.96-log
  • 您的代码指向 SQL Server(驱动程序),但您注意到似乎是 MySQL 版本号。

标签: sql datediff


【解决方案1】:

您在 MySQL 中使用 SQL Server 函数语法。 MySQL 的DATEDIFF 的正确语法是:

DATEDIFF(expr1,expr2)

例如,

SELECT DATEDIFF(CURDATE(), '2013-11-10 23:59:59')

返回

> 10

您可以将示例中的静态日期替换为表中列的名称。

See a demo

使用 DBMS 文档

【讨论】:

  • 我得到的只是“资源 id #58”,我已经尝试更改代码的各个方面。我认为当我调用查询时我遇到了问题。
  • 我不知道你的完整代码是什么样子的。使用 pastebin 或类似工具并为我们提供链接。
  • 我使用以下代码让它工作: $result = mysql_query("SELECT DATEDIFF(CURDATE(), '$pinDetails->time')"); $dayssince = mysql_result($result, 0);
  • 您可以在应用程序端完成此操作。
猜你喜欢
  • 1970-01-01
  • 2021-11-29
  • 1970-01-01
  • 1970-01-01
  • 2016-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-25
相关资源
最近更新 更多