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

时间:2017-01-10 09:58:10

标签: mysql database oracle h2

我需要计算SQL中两个日期之间的秒数差异。问题是相同的查询将在不同的环境中执行,具有不同的数据库引擎。

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

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:-1)

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

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