我需要计算SQL中两个日期之间的秒数差异。问题是相同的查询将在不同的环境中执行,具有不同的数据库引擎。
本地有MySQL,生产环境有Oracle,测试用H2。
我使用TIME_TO_SEC
函数编写了一个查询,它工作得很好,但是集成测试失败了,因为我有H2而不是MySQL。我也尝试使用DATEDIFF
函数,但它的实现在所有这些数据库中都是不同的。
是否有可能为所有这些数据库编写单个通用查询?
答案 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