mysql - 可以计算MySQL查询中两个日期时间字段之间的时间差吗?

标签 mysql

Possible Duplicate:
Difference between two dates in MySQL

我的表中有三个字段。日期 1、日期 2 和 DiffinHours。在我们的 PHP 代码中,当设置 Date2 时,我们计算 Date2 和 Date1 之间的小时差,然后将 DiffinHours 设置为该值。

但是,我们有一个数据库,其中在一段时间内没有进行计算,我们需要计算该时间范围内的 DiffinHours。我可以编写一个脚本来完成它,但我希望它可以通过查询来完成。

最佳答案

定期运行此查询。跟踪上次评估该行的时间,并检查该值是否为 0(意味着该行的 timediff 尚未计算):

UPDATE database SET DiffInHours = HOUR(TIMEDIFF(date2, date1)), lastEval = NOW() WHERE date2 != 0 AND lastEval = 0;

或者您可能指的是回填数据库的一次性查询,这里查询仅在 Diffinhours 为零时运行:

UPDATE database SET DiffInHours = HOUR(TIMEDIFF(date2, date1)) WHERE date2 != 0 AND DiffInHours = 0;

关于mysql - 可以计算MySQL查询中两个日期时间字段之间的时间差吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12092717/

相关文章:

php - PDO 在另一个数据库的表中插入查询不起作用

java - JPA/MySql 具有递增主次id的eniity

mysql - POST 表达 React 表单中的数据

mysql - 将 MySQL 表重新格式化为网格

PHP - 如何检查今天的日期是否与数据库中存储的日期匹配?

php - 如何从网站下载 html 的副本?

mysql - 在 MySQL 'LIMIT' 子句中使用 'NOT IN' 的替代方案?

php - 多字段级联mysql

java - 配置 hibernate 5.0.1 和 MySQL 时出错

php - 当用户提交表单时创建自动递增的 id