mysql - 如何从表中获取记录列表,其中使用 DATEDIFF 函数在选择查询本身的 2 个变量之间找到时间差?

标签 mysql sql plsql

SET @startdate = (select LOG_TIME from log.time where sender='Japan' and receiver ='USA' and code=158);

SET @enddate = (select LOG_TIME  from log.time where sender='Japan' and receiver ='USA' and code=189);

select * from log.time where  DATEDIFF(minute, @startdate, @enddate) >= 10;

这里我想使用 2 个变量(@startdate 和 @enddate),它们由来自所使用的选择查询的多个条目填充。

对于最后一行,我希望选择查询通过使用这两个具有多个值的变量来返回 DATEDIFF 函数大于或等于 10 分钟的记录列表。

P.S 我正在使用 Squirrel SQL Client 2.3 )

问题是我不知道是否可以使用多个变量值。

另请建议或提供上述问题的任何解决方案,以便查询最终有效。

最佳答案

您不能以这种方式使用变量。

现在很难确定没有看到您的表架构和示例数据,但您应该能够使用 JOIN 和这样的查询来执行您想要的操作

SELECT l1.* 
  FROM log.time l1 JOIN log.time l2
    ON l1.sender = l2.sender
   AND l1.receiver = l2.receiver
   AND l1.code = 158
   AND l2.code = 189
 WHERE l1.sender = 'Japan'
   AND l1.receiver = 'USA'
   AND DATEDIFF(minute, l1.log_time, l2.log_time) >= 10

如果您要提供表架构、示例数据和所需的输出,那么就可以测试您的查询

关于mysql - 如何从表中获取记录列表,其中使用 DATEDIFF 函数在选择查询本身的 2 个变量之间找到时间差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17398607/

相关文章:

java - ClassCastException : java. lang.Double 与 java.math.BigDecimal 不兼容

c# - 如何使用AWS SDK将生产Mysql数据库恢复到开发Mysql数据库

sql - 两个表之间的关系,中间有一个可选的第三个表

sql - 当 JOB 执行的过程没有完成时,JOB 何时再次执行它时会发生什么?

php - 如何在行、列或表中存储多个值?什么是最有效率的?

mysql - 基于另一个表 PySpark/SQL 的日期时间列聚合列

sql - 如何从pl sql过程运行sql脚本

php - SQL 插入 Bootstrap 表单

php - 单击按钮时如何插入表格?

mysql - 如何结合这两个mysql查询来保持速度呢?