提问人:Lori 提问时间:5/30/2015 最后编辑:Lori 更新时间:5/30/2015 访问量:834
使用另外两个填充字段的 DateDiff 结果更新字段
Update field with result of DateDiff of two other populated fields
问:
我需要做的就是获取两个日期时间字段,并将第三个字段设置为其结果。
这必须很容易,但我已经工作了 2 天,但无法获得我想要的结果。
$con = mysqli_connect(DBHOST, DBUSER, DBPASS, DBNAME) or die('Connection failed: ' . mysqli_connect_error());
$helpme=mysqli_query($con, "UPDATE chat_main SET Exact_Time = DATEDIFF(Start_TimeStamp, End_TimeStamp)");
mysqli_close($con);
答:
2赞
kainaw
5/30/2015
#1
问题是 DATEDIFF 返回两个日期之间的天数。在实现的上下文中,这两个日期似乎是同一天。因此,由于 DATEDIFF,您总是得到 0。我建议使用 TIMEDIFF,这将是两个时间的差异,而不是两个日期的差异。
2赞
spencer7593
5/30/2015
#2
这个问题真的应该回答。如果其他人添加了更好的答案,我将删除答案。
该函数对 only 的“日期”部分进行操作,并返回整数天数。DATEDIFF
DATETIME
若要获取两个 DATETIME 值之间的差值(以秒数表示),可以使用该函数。TIMESTAMPDIFF
若要将差值作为值返回,可以使用函数。TIME
TIMEDIFF
这就引出了一个问题,为什么你需要存储它,因为这个表达式可以在 SELECT 语句中计算。(存储它的一个很好的理由是你想在它上面添加一个索引,而MySQL不支持基于函数的索引。
而且,语句不返回结果集,因此您不能像从语句中获取行一样从中获取行。UPDATE
SELECT
评论
0赞
Lori
5/30/2015
谢谢@Spencer7593。我了解所有这些,我只是出于测试目的获取行以查看信息。timediff 是我正在处理的项目的关键部分,我要求存储它。没有其他原因。
评论
update
$helpme
是 UPDATE 查询的结果。它不会返回结果。因此,您不能用于获取结果。如果您的查询是 SELECT,则可以得到结果。mysql_fetch_array
$helpme = mysqliquery($con, "SELECT Exact_Time from chat_main");