繁体   English   中英

计算各种SQL数据库(MySQL,Oracle,H2)中两个日期之间以秒为单位的差异

[英]Calculate difference in seconds between two dates in various SQL databases (MySQL, Oracle, H2)

我需要计算SQL中两个日期之间以秒为单位的差异。 问题在于,同一查询将在不同的环境中使用不同的数据库引擎执行。

本地有MySQL,生产环境中有Oracle,H2用于测试。

我使用TIME_TO_SEC函数编写了一个查询,它运行良好,但是集成测试失败,因为在那里我使用了H2而不是MySQL。 我也尝试使用DATEDIFF函数,但是在所有这些数据库中,其实现都是不同的。

是否有可能为所有这些数据库编写单个通用查询?

我使用60 + extract(SECOND FROM (b.created_ts)) - extract(SECOND FROM a.created_ts) ,它适用于所有这些数据库。

我只能尝试在Oracle中进行测试。 这对你有帮助吗?

SELECT ( SYSDATE - (SYSDATE-1)) * 60 * 60 * 24
  FROM DUAL

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM